19 lines
553 B
Docker
19 lines
553 B
Docker
FROM node:22-alpine AS build
|
|
WORKDIR /app
|
|
RUN corepack enable && corepack prepare pnpm@10.32.1 --activate
|
|
COPY package.json pnpm-lock.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
COPY . .
|
|
ARG APP_ENV=production
|
|
RUN pnpm exec tsx scripts/next-env.ts "$APP_ENV" build \
|
|
&& pnpm exec tsx scripts/package-standalone.ts "$APP_ENV" \
|
|
&& mv "dist/$APP_ENV" /release
|
|
|
|
FROM node:22-alpine AS runtime
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production PORT=3000 HOSTNAME=0.0.0.0
|
|
COPY --from=build --chown=node:node /release ./
|
|
USER node
|
|
EXPOSE 3000
|
|
CMD ["node", "start.mjs"]
|