diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 54357e9..96d177a 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -27,7 +27,7 @@ BuildKit кэширует `/go/pkg/mod`, `~/.cache/go-build` и pnpm store че - `git.shx.one//evobgp-buildcache:go-buildcache` — **запись** только из `go-build-all` - `git.shx.one//evobgp-buildcache:web-buildcache` — **запись** только из `web-build` - `git.shx.one//evobgp-buildcache:birdc-buildcache` — **запись** только из `go-birdc` -- `git.shx.one//evobgp-buildcache:base-*` — зеркало FROM (`mirror-base-images.sh`): только `linux/amd64`, skip если тег уже в Gitea (без повторного pull с ECR / 429). Неуспешный copy не валит CD — bake берёт public FROM для этой базы. +- `git.shx.one//evobgp-buildcache:base-*` — зеркало FROM с **Docker Hub** (`docker.io/library/…`; distroless — `gcr.io`). Только `linux/amd64`; skip если тег уже в Gitea. Неуспешный copy не валит CD — bake берёт Docker Hub FROM для этой базы. `pull = false` в bake: не перекачивать FROM, если слой уже в builder. Не запускайте `docker system prune -a` на runner. diff --git a/deploy/docker/bird2/Dockerfile b/deploy/docker/bird2/Dockerfile index d6da7d3..6610338 100644 --- a/deploy/docker/bird2/Dockerfile +++ b/deploy/docker/bird2/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1.7 # BIRD из репозитория Ubuntu (Noble 24.04 LTS) — актуальнее пакета Debian bookworm. # Stage bird2-base общий с evobgp-agent (одинаковые слои на speaker-VPS). -ARG BASE_UBUNTU=public.ecr.aws/docker/library/ubuntu:noble +ARG BASE_UBUNTU=docker.io/library/ubuntu:noble FROM ${BASE_UBUNTU} AS bird2-base RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ diff --git a/deploy/docker/docker-bake.hcl b/deploy/docker/docker-bake.hcl index 8dceacf..604115f 100644 --- a/deploy/docker/docker-bake.hcl +++ b/deploy/docker/docker-bake.hcl @@ -39,11 +39,11 @@ variable "CACHE_REF_BIRDC" { } variable "BASE_GOLANG" { - default = "public.ecr.aws/docker/library/golang:1.24-alpine" + default = "docker.io/library/golang:1.24-alpine" } variable "BASE_DEBIAN" { - default = "public.ecr.aws/docker/library/debian:bookworm-slim" + default = "docker.io/library/debian:bookworm-slim" } variable "BASE_DISTROLESS" { @@ -51,15 +51,15 @@ variable "BASE_DISTROLESS" { } variable "BASE_NODE" { - default = "public.ecr.aws/docker/library/node:22-alpine" + default = "docker.io/library/node:22-alpine" } variable "BASE_NGINX" { - default = "public.ecr.aws/docker/library/nginx:1.27-alpine" + default = "docker.io/library/nginx:1.27-alpine" } variable "BASE_UBUNTU" { - default = "public.ecr.aws/docker/library/ubuntu:noble" + default = "docker.io/library/ubuntu:noble" } function "go-cache-from" { diff --git a/deploy/docker/evobgp-web/Dockerfile b/deploy/docker/evobgp-web/Dockerfile index 145ceb6..aec0c48 100644 --- a/deploy/docker/evobgp-web/Dockerfile +++ b/deploy/docker/evobgp-web/Dockerfile @@ -1,8 +1,8 @@ # syntax=docker/dockerfile:1.7 # React + Vite статическая панель EvoBGP + nginx. # Финальный stage `web` ожидает bake-контекст web-artifacts (= target:web-build). -ARG BASE_NODE=public.ecr.aws/docker/library/node:22-alpine -ARG BASE_NGINX=public.ecr.aws/docker/library/nginx:1.27-alpine +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 diff --git a/deploy/docker/gobinary/Dockerfile b/deploy/docker/gobinary/Dockerfile index 0eacfdc..8dcf9b4 100644 --- a/deploy/docker/gobinary/Dockerfile +++ b/deploy/docker/gobinary/Dockerfile @@ -2,8 +2,8 @@ # Универсальная сборка бинарей cmd/* (ARG BIN) или всех сразу (target build-all). # Воркеры (runtime): distroless static. api/all (runtime-birdc): debian-slim + birdc. # CI: docker buildx bake -f deploy/docker/docker-bake.hcl -ARG BASE_GOLANG=public.ecr.aws/docker/library/golang:1.24-alpine -ARG BASE_DEBIAN=public.ecr.aws/docker/library/debian:bookworm-slim +ARG BASE_GOLANG=docker.io/library/golang:1.24-alpine +ARG BASE_DEBIAN=docker.io/library/debian:bookworm-slim ARG BASE_DISTROLESS=gcr.io/distroless/static-debian12:nonroot FROM ${BASE_GOLANG} AS deps diff --git a/deploy/docker/mirror-base-images.sh b/deploy/docker/mirror-base-images.sh index a199150..f80e5ea 100644 --- a/deploy/docker/mirror-base-images.sh +++ b/deploy/docker/mirror-base-images.sh @@ -3,9 +3,10 @@ # Требует: docker login в REGISTRY host, docker buildx. # REGISTRY=git.shx.one/ (без суффикса /evobgp-buildcache) # -# Не ходим в public.ecr.aws, если тег уже есть в Gitea (иначе 429 Too Many Requests). -# Копируем только linux/amd64 — bake platforms совпадает, multi-arch индекс ECR не нужен. -# Шаг CD не должен падать: неуспешный copy оставляет bake на public FROM для этой базы. +# Источник library-образов — Docker Hub (docker.io), не public.ecr.aws (429 Too Many Requests). +# Если тег уже есть в Gitea — skip (без повторного pull). +# Копируем только linux/amd64 — bake platforms совпадает, multi-arch индекс не нужен. +# Шаг CD не должен падать: неуспешный copy оставляет bake на Docker Hub FROM для этой базы. set -eu REGISTRY="${REGISTRY:?REGISTRY required (git.shx.one/)}" CACHE_REPO="${REGISTRY}/evobgp-buildcache" @@ -52,19 +53,19 @@ mirror() { printf '%s=%s\n' "$var" "$dest" >>"$tmp" return 0 fi - echo "warn: ${dest} not mirrored — bake uses public FROM for ${var}" + echo "warn: ${dest} not mirrored — bake uses Docker Hub FROM for ${var}" return 0 } -mirror "public.ecr.aws/docker/library/golang:1.24-alpine" "base-golang-1.24-alpine" BASE_GOLANG +mirror "docker.io/library/golang:1.24-alpine" "base-golang-1.24-alpine" BASE_GOLANG sleep 8 -mirror "public.ecr.aws/docker/library/debian:bookworm-slim" "base-debian-bookworm-slim" BASE_DEBIAN +mirror "docker.io/library/debian:bookworm-slim" "base-debian-bookworm-slim" BASE_DEBIAN sleep 8 -mirror "public.ecr.aws/docker/library/node:22-alpine" "base-node-22-alpine" BASE_NODE +mirror "docker.io/library/node:22-alpine" "base-node-22-alpine" BASE_NODE sleep 8 -mirror "public.ecr.aws/docker/library/nginx:1.27-alpine" "base-nginx-1.27-alpine" BASE_NGINX +mirror "docker.io/library/nginx:1.27-alpine" "base-nginx-1.27-alpine" BASE_NGINX sleep 8 -mirror "public.ecr.aws/docker/library/ubuntu:noble" "base-ubuntu-noble" BASE_UBUNTU +mirror "docker.io/library/ubuntu:noble" "base-ubuntu-noble" BASE_UBUNTU sleep 8 mirror "gcr.io/distroless/static-debian12:nonroot" "base-distroless-static-debian12-nonroot" BASE_DISTROLESS