quality / commitlint (push) Skipped
quality / changes (push) Successful in 8s
quality / openapi (push) Skipped
quality / web (push) Skipped
quality / docker-check (push) Skipped
quality / go (push) Successful in 57s
quality / bird2 (push) Successful in 15s
CD / quality (push) Successful in 1m27s
CD / publish (push) Failing after 4m13s
- Changed base image references in `docker-bake.hcl`, Dockerfiles, and `mirror-base-images.sh` from public ECR to Docker Hub to avoid 429 errors and improve reliability. - Updated README documentation to reflect the new source for base images, clarifying the mirroring process and behavior when tags already exist.
30 lines
1.3 KiB
Docker
30 lines
1.3 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
# React + Vite статическая панель EvoBGP + nginx.
|
|
# Финальный stage `web` ожидает bake-контекст web-artifacts (= target:web-build).
|
|
ARG BASE_NODE=docker.io/library/node:22-alpine
|
|
ARG BASE_NGINX=docker.io/library/nginx:1.27-alpine
|
|
|
|
FROM ${BASE_NODE} AS deps
|
|
WORKDIR /repo
|
|
RUN corepack enable && corepack prepare [email protected] --activate
|
|
COPY pnpm-workspace.yaml pnpm-lock.yaml package.json ./
|
|
COPY apps/web/package.json ./apps/web/
|
|
COPY packages/ui/package.json ./packages/ui/
|
|
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
|
pnpm install --frozen-lockfile
|
|
|
|
FROM deps AS build
|
|
COPY tsconfig.base.json ./
|
|
COPY apps/web/ ./apps/web/
|
|
COPY packages/ui/ ./packages/ui/
|
|
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
|
pnpm --filter @evobgp/web run build
|
|
|
|
FROM ${BASE_NGINX} AS web
|
|
ARG EVOBGP_UPSTREAM=evobgp-api
|
|
COPY deploy/docker/evobgp-web/nginx.conf /tmp/nginx-default.conf
|
|
RUN sed -e "s/evobgp-api/${EVOBGP_UPSTREAM}/g" /tmp/nginx-default.conf > /etc/nginx/conf.d/default.conf \
|
|
&& rm -f /tmp/nginx-default.conf \
|
|
&& sed -i 's/^[[:space:]]*worker_processes[[:space:]]*auto;/worker_processes 1;/' /etc/nginx/nginx.conf
|
|
COPY --from=web-artifacts /repo/apps/web/dist /usr/share/nginx/html
|