From a00d273e2979d3d367c7bc324e91af514ccdf81d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mih=C3=A1ly=20Andr=C3=A1s=20T=C3=B3th?= Date: Fri, 11 Jul 2025 10:41:15 +0200 Subject: [PATCH] Add dockerfile --- .dockerignore | 14 ++++++++++++++ Dockerfile | 26 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..aad3962 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +.git +.gitignore +Dockerfile +.dockerignore +README.md +LICENSE +node_modules/ +coverge/ +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..026834e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM node:23-alpine3.21 +RUN apk upgrade --update-cache --available + +LABEL version=0.0.1 description="BadgeDex" + +# Create a group and user && Create directory for files +RUN mkdir /app && addgroup -S badgedex && adduser -h /app -S badgedex -g "Badgedex User" -G badgedex && chown -R badgedex:badgedex /app && chmod -R 755 /app + +#Switch to working directory +WORKDIR /app + +# Tell docker that all future commands should run as the appuser user +USER badgedex + +# Bundle app source. Create .dockerignore not copy all files from source directory +COPY --chown=badgedex:badgedex . . + +#Install dependencies +RUN npm install + +# Expose API port +EXPOSE 3000 +#Start node application +ENTRYPOINT ["npm"] + +CMD [ "start" ] \ No newline at end of file