33 lines
580 B
Docker
33 lines
580 B
Docker
FROM node:22.13-alpine AS builder
|
|
|
|
# Install a pinned pnpm version without relying on Corepack's signature cache.
|
|
RUN npm install -g pnpm@10.18.3
|
|
|
|
# Disable interactive prompts
|
|
ENV CI=true
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package.json and pnpm-lock.yaml first for caching
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
# Install dependencies
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# Copy the rest of the files
|
|
COPY . .
|
|
|
|
# Build the application
|
|
RUN pnpm build
|
|
|
|
FROM node:22.13-alpine AS runner
|
|
|
|
RUN npm install -g pnpm@10.18.3
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app ./
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["pnpm", "start"]
|