29 lines
970 B
Docker
29 lines
970 B
Docker
FROM node:14.18.1-alpine as builder
|
|
USER node
|
|
WORKDIR /home/node/build
|
|
COPY --chown=node:node . .
|
|
|
|
RUN npm ci --no-progress
|
|
RUN npm run build:curriculum
|
|
RUN npm run build:server
|
|
|
|
FROM node:14.18.1-alpine
|
|
USER node
|
|
WORKDIR /home/node/api
|
|
# get and install deps
|
|
COPY --from=builder --chown=node:node /home/node/build/package.json /home/node/build/package-lock.json ./
|
|
COPY --from=builder --chown=node:node /home/node/build/api-server/package.json /home/node/build/api-server/package-lock.json api-server/
|
|
RUN npm ci --production --ignore-scripts --no-progress \
|
|
&& cd api-server \
|
|
&& npm ci --production --no-progress \
|
|
&& npm cache clean --force
|
|
COPY --from=builder --chown=node:node /home/node/build/api-server/lib/ api-server/lib/
|
|
COPY --from=builder --chown=node:node /home/node/build/utils/ utils/
|
|
COPY --from=builder --chown=node:node /home/node/build/config/ config/
|
|
|
|
WORKDIR /home/node/api/api-server
|
|
|
|
CMD ["npm", "start"]
|
|
|
|
# TODO: don't copy mocks/fixtures
|