Files
auth-service/Dockerfile
2023-05-26 09:13:02 -04:00

40 lines
1.1 KiB
Docker

ARG ENV=production
ARG PORT=9001
ARG NPM_TOKEN
ARG YARN_VERSION=3.5.0
ARG MONGO_ENTRY_FILE=${MONGO_VERSION:-latest}
ARG MONGO_VERSION=${MONGO_VERSION:-latest}
## mongo build stage
FROM mongo:$MONGO_VERSION AS database
ENV NODE_ENV $ENV
ENV MONGO_ENTRY_FILE $MONGO_ENTRY_FILE
ENV MONGO_VERSION $MONGO_VERSION
COPY docker-entrypoint-initdb.d/mongo-init-$MONGO_ENTRY_FILE.sh ./docker-entrypoint-initdb.d/mongo-init.sh
## stage one, build the service
FROM node:20-bullseye-slim AS build
ENV YARN_VERSION $YARN_VERSION
ENV NODE_ENV development
ENV NPM_TOKEN $NPM_TOKEN
WORKDIR /home/node/app
COPY .npmrc /root
COPY .build.yarnrc.yml /root/.yarnrc.yml
COPY . .
RUN yarn set version stable && yarn install
RUN yarn build:production
## this is stage two , where the app actually runs
FROM node:20-bullseye-slim AS containerize
ENV YARN_VERSION $YARN_VERSION
ENV NODE_ENV $ENV
ENV NPM_TOKEN $NPM_TOKEN
WORKDIR /home/node/app
COPY .npmrc /root
COPY .build.yarnrc.yml /root/.yarnrc.yml
COPY package*.json yarn.lock ./
RUN yarn set version stable && yarn install && yarn cache clean
COPY --from=build /home/node/app/dist ./
EXPOSE $PORT
CMD ["node","index.js"]