From e55d2c5abab37b6c92b2a00f91e7df26d3346231 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Tue, 18 Aug 2026 18:45:51 +0700 Subject: [PATCH] feat(docker): enable relative path support for Docker bake configurations - Added `BUILDX_BAKE_FILE_RELATIVE_PATHS` environment variable to CI workflows to support relative paths in Docker bake commands. - Updated `docker-bake.hcl` comments to clarify context resolution from the current working directory. - Revised README documentation to reflect changes in context resolution and usage of the new environment variable. --- .gitea/workflows/cd.yaml | 4 +++- .gitea/workflows/quality.yaml | 2 ++ deploy/docker/README.md | 2 +- deploy/docker/docker-bake.hcl | 3 ++- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/cd.yaml b/.gitea/workflows/cd.yaml index 82b0e7a..aa73da0 100644 --- a/.gitea/workflows/cd.yaml +++ b/.gitea/workflows/cd.yaml @@ -125,7 +125,9 @@ jobs: CACHE_REF_WEB: git.shx.one/${{ steps.meta.outputs.owner_lc }}/evobgp-buildcache:web-buildcache CACHE_REF_BIRDC: git.shx.one/${{ steps.meta.outputs.owner_lc }}/evobgp-buildcache:birdc-buildcache BUILDX_BAKE_ENTITLEMENTS_FS: "0" + BUILDX_BAKE_FILE_RELATIVE_PATHS: "1" MIRROR_ENV_FILE: ${{ runner.temp }}/mirror-base.env + working-directory: deploy/docker run: | set -euxo pipefail if [ -f "${MIRROR_ENV_FILE}" ]; then @@ -135,4 +137,4 @@ jobs: set +a fi docker buildx bake --allow=fs.read="${{ github.workspace }}" \ - -f deploy/docker/docker-bake.hcl default --push + -f docker-bake.hcl default --push diff --git a/.gitea/workflows/quality.yaml b/.gitea/workflows/quality.yaml index 1a833e8..db8bbcc 100644 --- a/.gitea/workflows/quality.yaml +++ b/.gitea/workflows/quality.yaml @@ -366,12 +366,14 @@ jobs: working-directory: deploy/docker env: BUILDX_BAKE_ENTITLEMENTS_FS: "0" + BUILDX_BAKE_FILE_RELATIVE_PATHS: "1" run: docker buildx bake --allow=fs.read="${{ github.workspace }}" -f docker-bake.hcl --print default - name: bake (no push) if: inputs.allow_registry_login working-directory: deploy/docker env: BUILDX_BAKE_ENTITLEMENTS_FS: "0" + BUILDX_BAKE_FILE_RELATIVE_PATHS: "1" CACHE_REF_GO: git.shx.one/${{ github.repository_owner }}/evobgp-buildcache:go-buildcache CACHE_REF_WEB: git.shx.one/${{ github.repository_owner }}/evobgp-buildcache:web-buildcache CACHE_REF_BIRDC: git.shx.one/${{ github.repository_owner }}/evobgp-buildcache:birdc-buildcache diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 96d177a..3a3595c 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -56,7 +56,7 @@ docker buildx bake --allow=fs.read=../.. -f docker-bake.hcl web-images docker buildx bake --allow=fs.read=../.. -f docker-bake.hcl --print default ``` -В `docker-bake.hcl`: `context = "../.."` (корень репо), `dockerfile = "deploy/docker/…"` (путь от корня репо). +В `docker-bake.hcl`: `context = "../.."` резолвится **от cwd** (каталог `deploy/docker/`). `dockerfile` — путь от этого context (корень репо). Из корня репо не вызывать bake с `-f deploy/docker/docker-bake.hcl`: получится `lstat ../../deploy`. Можно задать `BUILDX_BAKE_FILE_RELATIVE_PATHS=1`. Один образ (legacy, target `build-all`): diff --git a/deploy/docker/docker-bake.hcl b/deploy/docker/docker-bake.hcl index 604115f..3899ba9 100644 --- a/deploy/docker/docker-bake.hcl +++ b/deploy/docker/docker-bake.hcl @@ -1,5 +1,6 @@ # Единая сборка образов EvoBGP (buildx bake: -f deploy/docker/docker-bake.hcl). -# context = "../.." — корень репозитория (относительно этого файла). +# context = "../.." — корень репо. Bake резолвит context от cwd (не от HCL), +# поэтому вызов из deploy/docker/ либо BUILDX_BAKE_FILE_RELATIVE_PATHS=1. # Переменные Bake читаются из окружения (см. docs.docker.com/build/bake/variables/). variable "REGISTRY" {