From e321ce1cb45e127d06907f474f642175548d5443 Mon Sep 17 00:00:00 2001 From: Fascinated Date: Wed, 12 Jul 2023 11:21:38 +0100 Subject: [PATCH] attempt to make the image smaller --- Dockerfile | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index f05a43b..48c3a9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,29 @@ -FROM node:lts-alpine +# Use a smaller base image +FROM node:lts-slim ENV NODE_ENV=production WORKDIR /usr/src/app -COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"] -RUN npm install --production --silent && mv node_modules ../ -COPY . . -EXPOSE 3000 -# Opt out of NextJS telemetry +# Copy package.json and package-lock.json separately to fully utilize Docker layer caching +COPY package.json ./ +COPY package-lock.json ./ +RUN npm ci --production --silent && npm cache clean --force + +# Copy the rest of the files +COPY . . + +# Opt out of Next.js telemetry RUN npx next telemetry disable # Build the app #RUN npm run build -# Setup permissions +# Expose port 3000 +EXPOSE 3000 + +# Set permissions and user RUN chown -R node /usr/src/app USER node -CMD ["npm", "start"] +# Start the app +CMD ["npm", "start"] \ No newline at end of file