Files
EvoBGP/deploy/docker/README.md
T
Denozordec 7d52a4af63
CI / changes (push) Successful in 6s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 29s
CI / docker-web (push) Successful in 1m30s
CI / docker-bird (push) Successful in 43s
CI / bird2 (push) Successful in 15s
CI / docker-go (push) Successful in 3m0s
refactor: update Docker build context and paths in CI configuration and documentation
Modified the CI workflow to include the `--allow=fs.read` flag for Docker build commands, allowing access to the repository context. Updated the `docker-bake.hcl` file to reflect the correct paths for Dockerfiles, ensuring consistency with the new structure. Adjusted the README to clarify the changes in build commands and paths, enhancing overall documentation accuracy.
2026-05-19 10:56:25 +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 --allow=fs.read=../.. -f docker-bake.hcl -f docker-bake.override.hcl go-images
docker buildx bake --allow=fs.read=../.. -f docker-bake.hcl -f docker-bake.override.hcl web-images

В docker-bake.hcl: context = "../.." (корень репо), dockerfile = "deploy/docker/…" (путь от корня репо). CI: write-bake-override.sh + --allow=fs.read=$GITHUB_WORKSPACE в .gitea/workflows/ci.yaml.

Один образ (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.