faloker/purify

View on GitHub
Dockerfile

Summary

Maintainability
Test Coverage
FROM node:14.10-alpine as build-static

WORKDIR /web
COPY ./web/package*.json ./
RUN npm install
COPY ./web/ .
RUN sed -i "/enbale_cdn/d" public/index.html 
RUN npm run build


FROM node:14.10-alpine as build-api

WORKDIR /api
COPY ./api/package*.json ./
RUN npm install
COPY ./api/ .
RUN npm run build


FROM node:14.10-alpine as production-stage

RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
RUN npm install -g migrate-mongo

WORKDIR /home/node/app
COPY ./api/package*.json ./

USER node
RUN mkdir ./static

RUN npm ci --only=production

COPY --chown=node:node ./api/ .
COPY --chown=node:node docker/web-entrypoint.sh .
COPY --chown=node:node --from=build-api /api/dist ./dist
COPY --chown=node:node --from=build-static  /web/dist ./static

RUN chmod +x web-entrypoint.sh

ENTRYPOINT ["./web-entrypoint.sh"]