chzzk-server/Dockerfile

33 lines
747 B
Docker

# syntax=docker/dockerfile:1
FROM node:22-bookworm-slim AS base
WORKDIR /app
# Keep pnpm version consistent via corepack + package.json packageManager
RUN corepack enable
FROM base AS deps
COPY package.json pnpm-lock.yaml .npmrc ./
RUN pnpm install --frozen-lockfile
FROM deps AS dev
ENV NODE_ENV=development
# For file watching in Docker on macOS
ENV CHOKIDAR_USEPOLLING=true
COPY . .
EXPOSE 3000
CMD ["pnpm", "start:dev"]
FROM deps AS build
COPY . .
RUN pnpm build
FROM base AS prod
ENV NODE_ENV=production
COPY --from=build /app/dist ./dist
COPY --from=build /app/package.json ./package.json
COPY --from=build /app/pnpm-lock.yaml ./pnpm-lock.yaml
COPY --from=deps /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/main.js"]