diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8fbf9ab --- /dev/null +++ b/Dockerfile @@ -0,0 +1,44 @@ +FROM node:22-bookworm-slim AS base + +# Install pnpm +RUN corepack enable && corepack prepare pnpm@9.15.9 --activate + +# Install git (needed for some dependencies) +RUN apt-get update && \ + apt-get install -y --no-install-recommends git && \ + rm -rf /var/lib/apt/lists/* + +# Build stage +FROM base AS build +WORKDIR /app + +# Copy package files +COPY package.json pnpm-lock.yaml ./ + +# Install ALL dependencies (including dev) for building +RUN pnpm install --frozen-lockfile + +# Copy source code +COPY . . + +# Build the app +RUN pnpm run build + +# Production stage +FROM base AS production +WORKDIR /app + +# Copy package files +COPY package.json pnpm-lock.yaml ./ + +# Install only production dependencies +RUN pnpm install --prod --frozen-lockfile + +# Copy built files from build stage +COPY --from=build /app/build ./build + +# Expose port +EXPOSE 8788 + +# Start the app +CMD ["pnpm", "start"]