FROM node:20-bookworm AS base FROM base AS builder ARG APP_DIR=/opt/bridge-worker RUN mkdir -p ${APP_DIR}/ RUN npm i -g turbo WORKDIR ${APP_DIR} COPY . . RUN turbo prune --scope=bridge-worker --docker FROM base AS installer ARG APP_DIR=/opt/bridge-worker WORKDIR ${APP_DIR} COPY --from=builder ${APP_DIR}/out/json/ . COPY --from=builder ${APP_DIR}/out/full/ . COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json RUN npm ci RUN npm i -g turbo RUN turbo run build --filter=bridge-worker FROM base as runner ARG BUILD_DATE ARG VERSION ARG APP_DIR=/opt/bridge-worker RUN mkdir -p ${APP_DIR}/ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -y --no-install-recommends \ dumb-init WORKDIR ${APP_DIR} COPY --from=installer ${APP_DIR} ./ RUN chown -R node:node ${APP_DIR} WORKDIR ${APP_DIR}/apps/bridge-worker/ RUN chmod +x docker-entrypoint.sh USER node ENV NODE_ENV production ENTRYPOINT ["/opt/bridge-worker/apps/bridge-worker/docker-entrypoint.sh"]