40 lines
842 B
Docker
40 lines
842 B
Docker
FROM cgr.dev/chainguard/node:latest-dev AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
USER root
|
|
RUN corepack enable && corepack prepare pnpm@10.25.0 --activate
|
|
USER node
|
|
|
|
COPY --chown=node:node package.json pnpm-lock.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
RUN pnpm add -D @sveltejs/adapter-node@latest
|
|
|
|
COPY --chown=node:node . .
|
|
COPY --chown=node:node svelte.config.docker.js svelte.config.js
|
|
|
|
RUN pnpm run build
|
|
|
|
RUN rm -rf node_modules && \
|
|
pnpm install --prod --frozen-lockfile && \
|
|
pnpm store prune
|
|
|
|
FROM cgr.dev/chainguard/node:latest AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder --chown=node:node /app/node_modules ./node_modules
|
|
|
|
COPY --from=builder --chown=node:node /app/build ./build
|
|
COPY --from=builder --chown=node:node /app/package.json ./
|
|
|
|
EXPOSE 3000
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=3000
|
|
ENV HOST=0.0.0.0
|
|
|
|
CMD ["build/index.js"]
|
|
|