fix(docker): update base image references to Docker Hub
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
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.
This commit is contained in:
@@ -27,7 +27,7 @@ BuildKit кэширует `/go/pkg/mod`, `~/.cache/go-build` и pnpm store че
|
||||
- `git.shx.one/<owner>/evobgp-buildcache:go-buildcache` — **запись** только из `go-build-all`
|
||||
- `git.shx.one/<owner>/evobgp-buildcache:web-buildcache` — **запись** только из `web-build`
|
||||
- `git.shx.one/<owner>/evobgp-buildcache:birdc-buildcache` — **запись** только из `go-birdc`
|
||||
- `git.shx.one/<owner>/evobgp-buildcache:base-*` — зеркало FROM (`mirror-base-images.sh`): только `linux/amd64`, skip если тег уже в Gitea (без повторного pull с ECR / 429). Неуспешный copy не валит CD — bake берёт public FROM для этой базы.
|
||||
- `git.shx.one/<owner>/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.
|
||||
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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" {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
# Требует: docker login в REGISTRY host, docker buildx.
|
||||
# REGISTRY=git.shx.one/<owner> (без суффикса /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/<owner>)}"
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user