# Typescript Build FROM registry.odit.services/hub/library/node:14.15.1-alpine3.12 WORKDIR /app COPY package.json ./ RUN npm i -g pnpm RUN pnpm i COPY tsconfig.json ./ COPY src ./src RUN pnpm run build # final image FROM registry.odit.services/hub/library/alpine:3.13.1 WORKDIR /app RUN apk add --no-cache \ chromium \ nss \ freetype \ freetype-dev \ harfbuzz \ ca-certificates \ ttf-freefont \ nodejs \ yarn # Tell Puppeteer to skip installing Chrome. We'll be using the installed package. ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser RUN addgroup -S pptruser && adduser -S -g pptruser pptruser \ && mkdir -p /home/pptruser/Downloads /app \ && chown -R pptruser:pptruser /home/pptruser \ && chown -R pptruser:pptruser /app # Run everything after as non-privileged user. USER pptruser COPY package.json ./ RUN yarn COPY --from=0 /app/dist app ENTRYPOINT ["node", "app/app.js"]