ci(docker): откатить buildx → docker build (registry connect refused внутри builder)
Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 1m2s
CI / Web (React + Vite) (push) Successful in 34s
Docker API / Build + push API (push) Successful in 35s
Docker Web / Build + push Web (push) Successful in 26s
Docker API / Deploy API on stage (push) Successful in 17s
Docker Web / Deploy Web on stage (push) Successful in 12s

buildx --driver docker-container запускает builder в изолированном
сетевом namespace, откуда 127.0.0.1:5001 (host registry) недоступен:
ошибка «dial tcp 127.0.0.1:5001: connect: connection refused» в шаге
FROM ${LOCAL_REGISTRY}/mirror/dotnet-aspnet:8.0.

Откатываю на классический `docker build` + `docker push`. У host
docker daemon уже есть 127.0.0.1:5001 в insecure-registries, layer-cache
демона между сборками сохраняет dotnet restore / pnpm install при
стабильных манифестах. Path-фильтры (api vs web) остаются — это
основной выигрыш по времени.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
nns 2026-04-25 13:39:29 +05:00
parent 1f19d7ca44
commit 776043f908
2 changed files with 16 additions and 14 deletions

View file

@ -25,19 +25,22 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build + push (buildx with registry cache) - name: Build + push (Docker daemon layer-cache)
env: env:
SHA: ${{ github.sha }} SHA: ${{ github.sha }}
DOCKER_BUILDKIT: '1'
run: | run: |
docker buildx create --use --name fmbuilder --driver docker-container 2>/dev/null \ # Используем обычный docker build — у host docker daemon в
|| docker buildx use fmbuilder # /etc/docker/daemon.json уже прописан 127.0.0.1:5001 как
docker buildx build \ # insecure-registry, и docker layer-cache между сборками
# дает быстрый dotnet restore/pnpm install при стабильных манифестах.
docker build \
-f deploy/Dockerfile.api \ -f deploy/Dockerfile.api \
-t $LOCAL_REGISTRY/food-market-api:$SHA \ -t $LOCAL_REGISTRY/food-market-api:$SHA \
-t $LOCAL_REGISTRY/food-market-api:latest \ -t $LOCAL_REGISTRY/food-market-api:latest \
--cache-from type=registry,ref=$LOCAL_REGISTRY/food-market-api:buildcache \ .
--cache-to type=registry,ref=$LOCAL_REGISTRY/food-market-api:buildcache,mode=max \ docker push $LOCAL_REGISTRY/food-market-api:$SHA
--push . docker push $LOCAL_REGISTRY/food-market-api:latest
deploy: deploy:
name: Deploy API on stage name: Deploy API on stage

View file

@ -21,19 +21,18 @@ jobs:
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build + push (buildx with registry cache) - name: Build + push (Docker daemon layer-cache)
env: env:
SHA: ${{ github.sha }} SHA: ${{ github.sha }}
DOCKER_BUILDKIT: '1'
run: | run: |
docker buildx create --use --name fmbuilder --driver docker-container 2>/dev/null \ docker build \
|| docker buildx use fmbuilder
docker buildx build \
-f deploy/Dockerfile.web \ -f deploy/Dockerfile.web \
-t $LOCAL_REGISTRY/food-market-web:$SHA \ -t $LOCAL_REGISTRY/food-market-web:$SHA \
-t $LOCAL_REGISTRY/food-market-web:latest \ -t $LOCAL_REGISTRY/food-market-web:latest \
--cache-from type=registry,ref=$LOCAL_REGISTRY/food-market-web:buildcache \ .
--cache-to type=registry,ref=$LOCAL_REGISTRY/food-market-web:buildcache,mode=max \ docker push $LOCAL_REGISTRY/food-market-web:$SHA
--push . docker push $LOCAL_REGISTRY/food-market-web:latest
deploy: deploy:
name: Deploy Web on stage name: Deploy Web on stage