From 07d008aa3a3556e86b78a1693c9806929152d93e Mon Sep 17 00:00:00 2001 From: Collin Duncan <3679940+cgduncan7@users.noreply.github.com> Date: Fri, 10 Feb 2023 23:41:49 +0100 Subject: [PATCH] More docker optimizations! (hopefully) --- docker/server/Dockerfile | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/docker/server/Dockerfile b/docker/server/Dockerfile index 453fb2d..d10a121 100644 --- a/docker/server/Dockerfile +++ b/docker/server/Dockerfile @@ -1,19 +1,14 @@ -FROM node:18 as base -LABEL org.opencontainers.image.source https://github.com/cgduncan7/autobaan - -RUN apt-get update \ - && apt-get install -y gcc chromium fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 --no-install-recommends -RUN npm i -g node-gyp - -WORKDIR /app -RUN chown -R node:node . - +FROM node:18 as builder ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium -USER node +WORKDIR /app -FROM base as app +RUN apt-get update && apt-get install -y gcc chromium fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 --no-install-recommends +RUN npm i -g node-gyp +RUN chown -R node:node . + +USER node COPY --chown=node:node package.json package.json COPY --chown=node:node package-lock.json package-lock.json @@ -22,4 +17,25 @@ RUN CXX=g++-12 npm install COPY --chown=node:node src src COPY --chown=node:node tsconfig.json tsconfig.json RUN npm run build + +FROM node:18 as dependencies + +ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true +ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium + +WORKDIR /app + +COPY --chown=node:node package.json package.json +COPY --chown=node:node package-lock.json package-lock.json +RUN CXX=g++-12 npm install --omit=dev + +FROM node:18 as app +LABEL org.opencontainers.image.source https://github.com/cgduncan7/autobaan + +WORKDIR /app + +COPY --from=builder /app/dist ./dist +COPY --from=dependencies /app/node_modules ./node_modules + +EXPOSE 3000 ENTRYPOINT node dist/server/index.js \ No newline at end of file