FROM node:20-bullseye as builder ARG METAMIGO_DIR=/opt/metamigo RUN mkdir -p ${METAMIGO_DIR}/ WORKDIR ${METAMIGO_DIR} COPY package.json tsconfig.json ${METAMIGO_DIR}/ COPY . ${METAMIGO_DIR}/ RUN npm --no-install tsc --build --verbose RUN npm install RUN npm run build RUN rm -Rf ./node_modules FROM node:20-bullseye as clean ARG METAMIGO_DIR=/opt/metamigo COPY --from=builder ${METAMIGO_DIR} ${METAMIGO_DIR}/ RUN rm -Rf ./node_modules FROM node:20-bullseye as pristine LABEL maintainer="Abel Luck " RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -y --no-install-recommends --fix-missing \ postgresql-client dumb-init ffmpeg ARG METAMIGO_DIR=/opt/metamigo ENV METAMIGO_DIR ${METAMIGO_DIR} RUN mkdir -p ${METAMIGO_DIR} RUN chown -R node:node ${METAMIGO_DIR}/ COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh COPY --from=clean ${METAMIGO_DIR}/ ${METAMIGO_DIR}/ WORKDIR ${METAMIGO_DIR} USER node EXPOSE 3000 EXPOSE 3001 EXPOSE 3002 ENV PORT 3000 ENV NODE_ENV production ARG BUILD_DATE ARG VCS_REF ARG VCS_URL="https://gitlab.com/digiresilience/link/metamigo" ARG VERSION LABEL org.label-schema.schema-version="1.0" LABEL org.label-schema.name="digiresilience.org/link/metamigo" LABEL org.label-schema.description="part of CDR Link" LABEL org.label-schema.build-date=$BUILD_DATE LABEL org.label-schema.vcs-url=$VCS_URL LABEL org.label-schema.vcs-ref=$VCS_REF LABEL org.label-schema.version=$VERSION ENTRYPOINT ["/docker-entrypoint.sh"]