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
|
FROM base AS builder
|
||||||
RUN mkdir -p ${METAMIGO_DIR}/
|
ARG APP_DIR=/opt/metamigo-api
|
||||||
WORKDIR ${METAMIGO_DIR}
|
RUN mkdir -p ${APP_DIR}/
|
||||||
COPY package.json tsconfig.json ${METAMIGO_DIR}/
|
RUN npm i -g turbo
|
||||||
COPY . ${METAMIGO_DIR}/
|
WORKDIR ${APP_DIR}
|
||||||
RUN npm install
|
COPY . .
|
||||||
RUN npm run build
|
RUN turbo prune --scope=metamigo-api --docker
|
||||||
# RUN npx --no-install tsc --build --verbose
|
|
||||||
|
|
||||||
RUN rm -Rf ./node_modules
|
|
||||||
|
|
||||||
FROM node:20-bullseye as clean
|
FROM base AS installer
|
||||||
ARG METAMIGO_DIR=/opt/metamigo
|
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}/
|
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||||
|
RUN npm i -g turbo
|
||||||
RUN rm -Rf ./node_modules
|
RUN turbo run build --filter=metamigo-api
|
||||||
|
|
||||||
FROM node:20-bullseye as pristine
|
|
||||||
LABEL maintainer="Abel Luck <abel@guardianproject.info>"
|
|
||||||
|
|
||||||
|
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 && \
|
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||||
apt-get install -y --no-install-recommends --fix-missing \
|
apt-get install -y --no-install-recommends \
|
||||||
postgresql-client dumb-init ffmpeg
|
dumb-init
|
||||||
|
RUN mkdir -p ${APP_DIR}
|
||||||
ARG METAMIGO_DIR=/opt/metamigo
|
RUN chown -R node ${APP_DIR}/
|
||||||
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
|
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 3000
|
||||||
EXPOSE 3001
|
|
||||||
EXPOSE 3002
|
|
||||||
ENV PORT 3000
|
ENV PORT 3000
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
|
ENTRYPOINT ["/opt/metamigo-api/apps/metamigo-api/docker-entrypoint.sh"]
|
||||||
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"]
|
|
||||||
|
|
|
||||||
|
|
@ -162,18 +162,37 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- zammad-data:/opt/zammad
|
- zammad-data:/opt/zammad
|
||||||
|
|
||||||
# metamigo-api:
|
|
||||||
# build: ./apps/metamigo-api
|
metamigo-postgresql:
|
||||||
# container_name: metamigo-api
|
build: ./docker/postgresql
|
||||||
# restart: ${RESTART}
|
container_name: metamigo-postgresql
|
||||||
# command: [ "api" ]
|
restart: ${RESTART}
|
||||||
# expose:
|
volumes:
|
||||||
# - "3001"
|
- metamigo-data:/var/lib/postgresql/data
|
||||||
# ports:
|
- ./scripts/bootstrap-metamigo.sh:/docker-entrypoint-initdb.d/bootstrap-metamigo.sh
|
||||||
# - 127.0.0.1:8004:3001
|
environment:
|
||||||
# environment: *common-metamigo-variables
|
<<: *common-metamigo-variables
|
||||||
# volumes:
|
POSTGRES_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
||||||
# - ./signald:/signald
|
POSTGRES_USER: "root"
|
||||||
|
POSTGRES_DB: "metamigo"
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:5433:5432
|
||||||
|
|
||||||
|
metamigo-api:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/metamigo-api/Dockerfile
|
||||||
|
container_name: metamigo-api
|
||||||
|
restart: ${RESTART}
|
||||||
|
command: [ "api" ]
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:8004:3001
|
||||||
|
environment: *common-metamigo-variables
|
||||||
|
volumes:
|
||||||
|
- ./signald:/signald
|
||||||
|
depends_on:
|
||||||
|
- metamigo-postgresql
|
||||||
|
- signald
|
||||||
|
|
||||||
# metamigo-frontend:
|
# metamigo-frontend:
|
||||||
# build: ./apps/metamigo-frontend
|
# build: ./apps/metamigo-frontend
|
||||||
|
|
@ -196,22 +215,6 @@ services:
|
||||||
# command: [ "worker" ]
|
# command: [ "worker" ]
|
||||||
# environment: *common-metamigo-variables
|
# environment: *common-metamigo-variables
|
||||||
|
|
||||||
# metamigo-postgresql:
|
|
||||||
# build: ./docker/postgresql
|
|
||||||
# restart: ${RESTART}
|
|
||||||
# volumes:
|
|
||||||
# - metamigo-data:/var/lib/postgresql/data
|
|
||||||
# - ./scripts/bootstrap-metamigo.sh:/docker-entrypoint-initdb.d/bootstrap-metamigo.sh
|
|
||||||
# environment:
|
|
||||||
# <<: *common-metamigo-variables
|
|
||||||
# POSTGRES_PASSWORD: ${METAMIGO_DATABASE_ROOT_PASSWORD}
|
|
||||||
# POSTGRES_USER: "root"
|
|
||||||
# POSTGRES_DB: "metamigo"
|
|
||||||
# expose:
|
|
||||||
# - "5432"
|
|
||||||
# ports:
|
|
||||||
# - 127.0.0.1:5433:5432
|
|
||||||
|
|
||||||
signald:
|
signald:
|
||||||
container_name: signald
|
container_name: signald
|
||||||
build: ./docker/signald
|
build: ./docker/signald
|
||||||
|
|
@ -260,8 +263,6 @@ services:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: ./apps/leafcutter/Dockerfile
|
dockerfile: ./apps/leafcutter/Dockerfile
|
||||||
expose:
|
|
||||||
- "3000"
|
|
||||||
ports:
|
ports:
|
||||||
- "8004:3000"
|
- "8004:3000"
|
||||||
environment:
|
environment:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue