From 13383ef596f1f38ee2686e3a6b26db9e9399c9c1 Mon Sep 17 00:00:00 2001 From: Jonas Kappa Date: Mon, 29 Sep 2025 15:45:59 +0200 Subject: [PATCH] Added dockerization --- .dockerignore | 17 +++++++++++++++++ Dockerfile | 20 ++++++++++++++++++++ package.json | 3 ++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6034042 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,17 @@ +Dockerfile +.dockerignore +.git +.gitignore +.gitattributes +README.md +.npmrc +.prettierrc +.eslintrc.cjs +.graphqlrc +.editorconfig +.vscode +node_modules +build +package +**/.env +.env* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1f11d57 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +ARG NODE_VERSION=24.6.0 + +FROM node:${NODE_VERSION}-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN --mount=type=bind,source=package.json,target=package.json \ + --mount=type=bind,source=package-lock.json,target=package-lock.json \ + --mount=type=cache,target=/root/.npm \ + npm ci +COPY . . +RUN npm prune --production + +FROM node:${NODE_VERSION}-alpine +WORKDIR /app +COPY --from=builder /app/node_modules node_modules/ +COPY --from=builder /app/index.js . +USER node +EXPOSE 12345 +ENV NODE_ENV=production +CMD [ "node", "."] diff --git a/package.json b/package.json index adda98d..3d7805a 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "type": "module", "main": "index.js", "scripts": { - "dev": "node index.js" + "dev": "node index.js", + "docker-build": "docker build -t jeopardyserver ." }, "dependencies": { "ws": "^8.18.3"