33 lines
763 B
Docker
33 lines
763 B
Docker
ARG ENV=production
|
|
ARG MONGO_VERSION=latest
|
|
ARG PORT=9001
|
|
|
|
## mongo build stage
|
|
FROM mongo:$MONGO_VERSION AS database
|
|
RUN apt update && apt install git
|
|
WORKDIR /
|
|
COPY mongo-init.js /docker-entrypoint-initdb.d
|
|
|
|
## stage one, build the service
|
|
FROM node:20-alpine AS build
|
|
RUN apk update && apk add git
|
|
ENV NODE_ENV development
|
|
WORKDIR /home/node/app
|
|
COPY package*.json ./
|
|
COPY tsconfig.json ./
|
|
COPY lib ./lib
|
|
RUN ls -a
|
|
RUN yarn install
|
|
RUN yarn build
|
|
|
|
## this is stage two , where the app actually runs
|
|
FROM node:20-alpine AS containerize
|
|
RUN apk update && apk add git
|
|
ENV NODE_ENV $ENV
|
|
WORKDIR /home/node/app
|
|
COPY package*.json ./
|
|
RUN yarn install --frozen-lockfile --production
|
|
COPY --from=build /home/node/app/dist .
|
|
EXPOSE $PORT
|
|
CMD ["node","server/index.js"]
|