From 773ee8ca8912a27994c81243f621ddcbc67e929f Mon Sep 17 00:00:00 2001 From: Levente Csoke Date: Sun, 15 Mar 2026 22:19:55 +0100 Subject: [PATCH] feat: add Dockerfile for containerized deployment Adds a production-ready Dockerfile based on node:24-alpine: - Installs only runtime dependencies (docker-cli, curl) - Runs as non-root `node` user - Includes HEALTHCHECK for container orchestration - Adds .dockerignore to keep image lean Co-Authored-By: Claude Opus 4.6 --- .dockerignore | 6 ++++++ Dockerfile | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6ba76bd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.git +.gitignore +docs +README.md +RELEASE_NOTES.md +install.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..daae9e7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM node:24-alpine + +RUN apk add --no-cache docker-cli curl + +WORKDIR /app + +COPY server.js index.html ./ +COPY scripts/ ./scripts/ + +RUN chown -R node:node /app + +USER node + +ENV NODE_ENV=production +ENV DASHBOARD_PORT=3001 +ENV DASHBOARD_ALLOW_HTTP=true + +EXPOSE 3001 + +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD curl -sf http://127.0.0.1:${DASHBOARD_PORT:-3001}/ || exit 1 + +CMD ["node", "server.js"]