43 lines
1.5 KiB
Docker
43 lines
1.5 KiB
Docker
FROM docker.io/library/node:22-trixie-slim AS workspace-base
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json ./
|
|
COPY apps/admin/package.json apps/admin/package.json
|
|
COPY apps/submission/package.json apps/submission/package.json
|
|
COPY packages/cue-engine/package.json packages/cue-engine/package.json
|
|
COPY packages/effects/package.json packages/effects/package.json
|
|
COPY packages/render-engine/package.json packages/render-engine/package.json
|
|
COPY packages/shared-types/package.json packages/shared-types/package.json
|
|
COPY services/api/package.json services/api/package.json
|
|
COPY services/worker/package.json services/worker/package.json
|
|
|
|
RUN npm ci
|
|
|
|
FROM workspace-base AS workspace-source
|
|
WORKDIR /app
|
|
COPY . .
|
|
|
|
FROM workspace-source AS node-runtime
|
|
WORKDIR /app
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
libheif1 \
|
|
libheif-plugin-libde265 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
FROM workspace-source AS admin-build
|
|
WORKDIR /app
|
|
RUN npm run build --workspace @goodgrief/admin
|
|
|
|
FROM workspace-source AS submission-build
|
|
WORKDIR /app
|
|
RUN npm run build --workspace @goodgrief/submission
|
|
|
|
FROM docker.io/library/nginx:1.27-alpine AS admin-web
|
|
COPY docker/nginx/spa.conf /etc/nginx/conf.d/default.conf
|
|
COPY --from=admin-build /app/apps/admin/dist /usr/share/nginx/html
|
|
|
|
FROM docker.io/library/nginx:1.27-alpine AS submission-web
|
|
COPY docker/nginx/spa.conf /etc/nginx/conf.d/default.conf
|
|
COPY --from=submission-build /app/apps/submission/dist /usr/share/nginx/html
|