Files
EvoBGP/deploy/docker/README.md
T
Denozordec 6025f383f1
CI / changes (push) Successful in 6s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 22s
CI / docker-web (push) Failing after 14s
CI / docker-bird (push) Failing after 14s
CI / bird2 (push) Successful in 16s
CI / docker-go (push) Failing after 15s
refactor: streamline Docker build process in CI configuration and documentation
Updated the CI workflow to utilize a script for generating Docker build variable overrides, simplifying the build commands for Go and Web images. Adjusted the README to reflect the new build process and clarify the usage of environment variables, enhancing overall documentation clarity.
2026-05-19 10:51:55 +07:00

1.9 KiB
Raw Blame History

Docker-образы EvoBGP

CI (Gitea Actions)

Сборка образов — docker buildx bake (deploy/docker/docker-bake.hcl), а не матрица из восьми отдельных docker build.

Было Стало
8× go mod download + 8× go build (разные BIN) 1× download + 1× компиляция всех cmd/*
2× сборка BIRD из исходников (api, all) 1× stage birdc, копируется в runtime
2× npm ci (web, web-all) 1× web-deps + два nginx-образа
8 runner'ов с checkout/login 1 job docker-go, 1 job docker-web

Кэш registry (переменные bake):

  • git.shts.su/<owner>/evobgp-buildcache:go-buildcache
  • git.shts.su/<owner>/evobgp-buildcache:web-buildcache

Локально BuildKit также кэширует /go/pkg/mod и ~/.cache/go-build через RUN --mount=type=cache.

Локальная сборка

Из корня репозитория:

cd deploy/docker
export REGISTRY=git.shts.su/<owner>
export IMAGE_TAG=latest
export SHORT_SHA=$(git rev-parse --short HEAD)
sh write-bake-override.sh
docker buildx bake -f docker-bake.hcl -f docker-bake.override.hcl go-images
docker buildx bake -f docker-bake.hcl -f docker-bake.override.hcl web-images

CI: на runner без buildx bake --var скрипт write-bake-override.sh генерирует docker-bake.override.hcl с нужными variable (файл не коммитится). Альтернатива на новом buildx: --var REGISTRY=… (см. docker buildx bake --help).

Один образ (legacy):

docker build -f deploy/docker/gobinary/Dockerfile \
  --target build-all \
  --build-arg BIN=evobgp-api \
  -t evobgp-api:local .

Runtime-образы в bake ожидают stage build-all (через bake contexts), не отдельный --build-arg BIN на старый target build.