link-stack/apps/leafcutter/Dockerfile

53 lines
1.4 KiB
Text
Raw Permalink Normal View History

2023-05-26 15:40:34 +00:00
FROM node:20 AS base
FROM base AS builder
2023-02-13 13:46:56 +00:00
ARG APP_DIR=/opt/leafcutter
RUN mkdir -p ${APP_DIR}/
2023-05-26 15:40:34 +00:00
RUN npm i -g turbo
WORKDIR ${APP_DIR}
COPY . .
RUN turbo prune --scope=leafcutter --docker
FROM base AS installer
ARG APP_DIR=/opt/leafcutter
2023-02-13 13:46:56 +00:00
WORKDIR ${APP_DIR}
2023-05-26 15:40:34 +00:00
COPY .gitignore .gitignore
COPY --from=builder ${APP_DIR}/out/json/ .
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
2023-07-18 08:16:16 +00:00
RUN npm ci
2023-05-26 15:40:34 +00:00
COPY --from=builder ${APP_DIR}/out/full/ .
2023-06-05 14:48:23 +00:00
ARG LINK_EMBEDDED=true
2023-05-26 15:40:34 +00:00
RUN npm i -g turbo
RUN turbo run build --filter=leafcutter
2023-02-13 13:46:56 +00:00
2023-05-26 15:40:34 +00:00
FROM base AS runner
ARG APP_DIR=/opt/leafcutter
WORKDIR ${APP_DIR}/
2023-02-13 13:46:56 +00:00
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 \
dumb-init
RUN mkdir -p ${APP_DIR}
RUN chown -R node ${APP_DIR}/
2023-05-26 15:40:34 +00:00
2023-02-13 13:46:56 +00:00
USER node
WORKDIR ${APP_DIR}
2023-05-26 15:40:34 +00:00
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
COPY --from=installer ${APP_DIR}/apps/leafcutter/ ./apps/leafcutter/
COPY --from=installer ${APP_DIR}/package.json ./package.json
USER root
WORKDIR ${APP_DIR}/apps/leafcutter/
RUN chmod +x docker-entrypoint.sh
USER node
2023-02-13 13:46:56 +00:00
EXPOSE 3000
ENV PORT 3000
ENV NODE_ENV production
2023-05-26 15:40:34 +00:00
ENTRYPOINT ["/opt/leafcutter/apps/leafcutter/docker-entrypoint.sh"]