diff --git a/.gitignore b/.gitignore index 5a86d2a..8e4c1e5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,3 @@ dist/ coverage/ .DS_Store *.log -.env* -!.env.example diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e7dbe96 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,36 @@ +### `Dockerfile` +```dockerfile +# Multi-Stage Dockerfile for Gothic II Mod Website +FROM node:20-alpine AS builder + +WORKDIR /app + +# Install dependencies first for better Docker layer caching +COPY package*.json ./ +RUN npm ci + +# Copy source code and build the production bundle +COPY . . +RUN npm run build + +# Production Runner Stage +FROM node:20-alpine AS runner + +WORKDIR /app + +ENV NODE_ENV=production +ENV PORT=3000 + +# Install production dependencies only +COPY package*.json ./ +RUN npm ci --only=production + +# Copy built dist files and default cms data from builder +COPY --from=builder /app/dist ./dist +COPY --from=builder /app/src/data ./src/data +COPY --from=builder /app/cms-data.json ./cms-data.json + +EXPOSE 3000 + +CMD ["node", "dist/server.cjs"] +```