# syntax=docker/dockerfile:1.4 FROM --platform=$BUILDPLATFORM docker.io/library/node:22 as build_deps WORKDIR /app COPY .yarnrc yarn.lock package.json ./ # Uses a cache mount for the Yarn cache so that it's not included in subsequent steps RUN --mount=type=cache,target=/root/.yarn YARN_CACHE_FOLDER=/root/.yarn yarn --production --frozen-lockfile --ignore-optional --network-timeout 1000000 COPY --link config ./config/ COPY --link lit-localize.json \ postcss.config.js \ tailwind.config.js \ tsconfig.json \ webpack.config.js \ webpack.prod.js \ .eslintrc.js \ tsconfig.eslint.json \ index.d.ts \ ./ COPY --link lib ./lib/ COPY --link src ./src/ # Build variables used to show current app version # in the UI. Note that this will invalidate all # subsequent RUN steps. ARG GIT_COMMIT_HASH ARG GIT_BRANCH_NAME ARG VERSION ENV GIT_COMMIT_HASH=${GIT_COMMIT_HASH} \ GIT_BRANCH_NAME=${GIT_BRANCH_NAME} \ VERSION=${VERSION} # Prevent Docker image including node_modules to save space RUN yarn build && \ rm -rf ./node_modules FROM --platform=$BUILDPLATFORM docker.io/library/python:3.12-slim as build_docs WORKDIR /docs RUN pip install mkdocs-material COPY --link ./docs/mkdocs.yml . COPY --link ./docs/docs ./docs RUN API_DOCS_URL=/api/redoc mkdocs build FROM docker.io/library/nginx:1.23.2 COPY --link --from=build_deps /app/dist /usr/share/nginx/html COPY --link --from=build_docs /docs/site /usr/share/nginx/html/docs #COPY ./nginx.conf /etc/nginx/nginx.conf COPY --link ./frontend.conf.template /etc/nginx/templates/ COPY --link ./minio.conf /etc/nginx/includes/ ADD --link ./00-browsertrix-nginx-init.sh ./docker-entrypoint.d/