From 4880f695fb2185aefea7c60c61b8d541abc372ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20He=C3=9Fe?= Date: Mon, 3 Aug 2026 23:35:58 +0200 Subject: [PATCH] Added Dockerfile --- .gitignore | 2 -- Dockerfile | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 Dockerfile 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"] +```