metamigo-api(Dockerfile): use turbo prune --docker
This commit is contained in:
parent
907b9cb931
commit
fc35ee0f3d
2 changed files with 71 additions and 79 deletions
|
|
@ -1,60 +1,51 @@
|
|||
FROM node:20-bullseye as builder
|
||||
FROM node:20 as base
|
||||
|
||||
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 install
|
||||
RUN npm run build
|
||||
# RUN npx --no-install tsc --build --verbose
|
||||
FROM base AS builder
|
||||
ARG APP_DIR=/opt/metamigo-api
|
||||
RUN mkdir -p ${APP_DIR}/
|
||||
RUN npm i -g turbo
|
||||
WORKDIR ${APP_DIR}
|
||||
COPY . .
|
||||
RUN turbo prune --scope=metamigo-api --docker
|
||||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:20-bullseye as clean
|
||||
ARG METAMIGO_DIR=/opt/metamigo
|
||||
FROM base AS installer
|
||||
ARG APP_DIR=/opt/metamigo-api
|
||||
WORKDIR ${APP_DIR}
|
||||
COPY .gitignore .gitignore
|
||||
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||
RUN npm ci --omit=dev
|
||||
|
||||
COPY --from=builder ${METAMIGO_DIR} ${METAMIGO_DIR}/
|
||||
|
||||
RUN rm -Rf ./node_modules
|
||||
|
||||
FROM node:20-bullseye as pristine
|
||||
LABEL maintainer="Abel Luck <abel@guardianproject.info>"
|
||||
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||
RUN npm i -g turbo
|
||||
RUN turbo run build --filter=metamigo-api
|
||||
|
||||
FROM base AS runner
|
||||
ARG APP_DIR=/opt/metamigo-api
|
||||
WORKDIR ${APP_DIR}/
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||
LABEL org.label-schema.build-date=$BUILD_DATE
|
||||
LABEL org.label-schema.version=$VERSION
|
||||
ENV APP_DIR ${APP_DIR}
|
||||
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}
|
||||
apt-get install -y --no-install-recommends \
|
||||
dumb-init
|
||||
RUN mkdir -p ${APP_DIR}
|
||||
RUN chown -R node ${APP_DIR}/
|
||||
|
||||
USER node
|
||||
|
||||
WORKDIR ${APP_DIR}
|
||||
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
||||
COPY --from=installer ${APP_DIR}/apps/metamigo-api/ ./apps/metamigo-api/
|
||||
COPY --from=installer ${APP_DIR}/package.json ./package.json
|
||||
USER root
|
||||
WORKDIR ${APP_DIR}/apps/metamigo-api/
|
||||
RUN chmod +x docker-entrypoint.sh
|
||||
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"]
|
||||
ENTRYPOINT ["/opt/metamigo-api/apps/metamigo-api/docker-entrypoint.sh"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue