From 35cf8eddbc870140eb7f17c6e73b1f9308411522 Mon Sep 17 00:00:00 2001 From: nicwands Date: Wed, 27 May 2026 14:08:06 -0400 Subject: [PATCH] add dockerfile --- .dockerignore | 15 +++++++++++++++ Dockerfile | 29 +++++++++++++++++++++++++++++ docker-compose.yml | 1 - 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..34b9c84 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +node_modules +npm-debug.log +.git +.gitignore +README.md +.env +.nyc_output +coverage +.sass-cache +.cache +.tmp +.DS_Store +*.log +dist +.strapi-updater.json \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8c64094 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# Creating multi-stage build for production +FROM node:24-alpine as build +RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev vips-dev > /dev/null 2>&1 +ARG NODE_ENV=production +ENV NODE_ENV=${NODE_ENV} + +WORKDIR /opt/ +COPY package.json package-lock.json ./ +RUN npm config set fetch-retry-maxtimeout 600000 -g && npm install --only=production +ENV PATH=/opt/node_modules/.bin:$PATH +WORKDIR /opt/app +COPY . . +RUN npm run build + +# Creating final production image +FROM node:24-alpine +RUN apk add --no-cache vips-dev +ARG NODE_ENV=production +ENV NODE_ENV=${NODE_ENV} +WORKDIR /opt/ +COPY --from=build /opt/node_modules ./node_modules +WORKDIR /opt/app +COPY --from=build /opt/app ./ +ENV PATH=/opt/node_modules/.bin:$PATH + +RUN chown -R node:node /opt/app +USER node +EXPOSE 1337 +CMD ["npm", "run", "start"] diff --git a/docker-compose.yml b/docker-compose.yml index bd7e169..bcac22d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,6 @@ services: container_name: takerofnotes build: context: . - dockerfile: Dockerfile.prod image: takerofnotes-cms:latest restart: unless-stopped env_file: .env