27 lines
680 B
Docker
27 lines
680 B
Docker
## mongo build stage
|
|
#ARG MONGO_VERSION=${MONGO_VERSION}
|
|
FROM mongo:${MONGO_VERSION:-latest} AS database
|
|
WORKDIR /
|
|
COPY mongo-init.js ./docker-entrypoint-initdb.d/
|
|
|
|
## stage one, build the service
|
|
FROM node:20-alpine AS build
|
|
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
|
|
ENV NODE_ENV ${ENV:-production}
|
|
WORKDIR /home/node/app
|
|
COPY package*.json ./
|
|
RUN yarn install --frozen-lockfile --production
|
|
COPY --from=build /home/node/app/dist .
|
|
EXPOSE ${PORT:-9001}
|
|
CMD ["node","server/index.js"]
|