Link and Leafcutter Dockerfiles
This commit is contained in:
parent
6dc4cfd3cc
commit
4e4603bd71
5 changed files with 42 additions and 28 deletions
|
|
@ -1,38 +1,51 @@
|
||||||
FROM node:20-bullseye-slim as builder
|
|
||||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
FROM node:20 AS base
|
||||||
|
|
||||||
|
FROM base AS builder
|
||||||
ARG APP_DIR=/opt/leafcutter
|
ARG APP_DIR=/opt/leafcutter
|
||||||
RUN mkdir -p ${APP_DIR}/
|
RUN mkdir -p ${APP_DIR}/
|
||||||
COPY . ${APP_DIR}/
|
RUN npm i -g turbo
|
||||||
RUN chown -R node ${APP_DIR}/
|
|
||||||
USER node
|
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
ENV NEXT_PUBLIC_NEXTAUTH_URL https://lc.digiresilience.org
|
COPY . .
|
||||||
RUN npm install
|
RUN turbo prune --scope=leafcutter --docker
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
FROM node:20-bullseye-slim
|
FROM base AS installer
|
||||||
|
ARG APP_DIR=/opt/leafcutter
|
||||||
|
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 ${APP_DIR}/out/full/ .
|
||||||
|
RUN npm i -g turbo
|
||||||
|
RUN turbo run build --filter=leafcutter
|
||||||
|
|
||||||
|
FROM base AS runner
|
||||||
|
ARG APP_DIR=/opt/leafcutter
|
||||||
|
WORKDIR ${APP_DIR}/
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||||
LABEL org.label-schema.build-date=$BUILD_DATE
|
LABEL org.label-schema.build-date=$BUILD_DATE
|
||||||
LABEL org.label-schema.version=$VERSION
|
LABEL org.label-schema.version=$VERSION
|
||||||
ARG APP_DIR=/opt/leafcutter
|
|
||||||
ENV APP_DIR ${APP_DIR}
|
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 \
|
apt-get install -y --no-install-recommends \
|
||||||
dumb-init
|
dumb-init
|
||||||
RUN mkdir -p ${APP_DIR}
|
RUN mkdir -p ${APP_DIR}
|
||||||
RUN chown -R node ${APP_DIR}/
|
RUN chown -R node ${APP_DIR}/
|
||||||
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
|
||||||
RUN chmod +x /docker-entrypoint.sh
|
|
||||||
USER node
|
USER node
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
COPY --from=builder ${APP_DIR}/node_modules ./node_modules
|
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
||||||
COPY --from=builder ${APP_DIR}/.next ./.next
|
COPY --from=installer ${APP_DIR}/apps/leafcutter/ ./apps/leafcutter/
|
||||||
COPY --from=builder ${APP_DIR}/next.config.js ./next.config.js
|
COPY --from=installer ${APP_DIR}/package.json ./package.json
|
||||||
|
USER root
|
||||||
|
WORKDIR ${APP_DIR}/apps/leafcutter/
|
||||||
|
RUN chmod +x docker-entrypoint.sh
|
||||||
|
USER node
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
ENV PORT 3000
|
ENV PORT 3000
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
COPY package.json ./
|
ENTRYPOINT ["/opt/leafcutter/apps/leafcutter/docker-entrypoint.sh"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
echo "starting leafcutter"
|
||||||
cd ${APP_DIR}
|
|
||||||
echo "starting admin app"
|
|
||||||
exec dumb-init npm run start
|
exec dumb-init npm run start
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ WORKDIR ${APP_DIR}
|
||||||
COPY .gitignore .gitignore
|
COPY .gitignore .gitignore
|
||||||
COPY --from=builder ${APP_DIR}/out/json/ .
|
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||||
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||||
RUN npm install
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
COPY --from=builder ${APP_DIR}/out/full/ .
|
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||||
RUN npm i -g turbo
|
RUN npm i -g turbo
|
||||||
|
|
@ -40,10 +40,12 @@ USER node
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
||||||
COPY --from=installer ${APP_DIR}/apps/link/ ./apps/link/
|
COPY --from=installer ${APP_DIR}/apps/link/ ./apps/link/
|
||||||
|
COPY --from=installer ${APP_DIR}/package.json ./package.json
|
||||||
USER root
|
USER root
|
||||||
RUN chmod +x ./apps/link/docker-entrypoint.sh
|
WORKDIR ${APP_DIR}/apps/link/
|
||||||
|
RUN chmod +x docker-entrypoint.sh
|
||||||
USER node
|
USER node
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
ENV PORT 3000
|
ENV PORT 3000
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
ENTRYPOINT ["./apps/link/docker-entrypoint.sh"]
|
ENTRYPOINT ["/opt/link/apps/link/docker-entrypoint.sh"]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd ${APP_DIR}
|
|
||||||
echo "starting link"
|
echo "starting link"
|
||||||
exec dumb-init npm run start
|
exec dumb-init npm run start
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -237,13 +237,15 @@ services:
|
||||||
|
|
||||||
leafcutter:
|
leafcutter:
|
||||||
container_name: leafcutter
|
container_name: leafcutter
|
||||||
build: ./apps/leafcutter
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: ./apps/leafcutter/Dockerfile
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3000"
|
||||||
ports:
|
ports:
|
||||||
- "8004:3000"
|
- "8004:3000"
|
||||||
environment:
|
environment:
|
||||||
ZAMMAD_PROXY_URL: ${ZAMMAD_PROXY_URL}
|
LINK_EMBEDDED: "true"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
elasticsearch-data:
|
elasticsearch-data:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue