diff --git a/.gitea/workflows/build-and-push.yml b/.gitea/workflows/build-and-push.yml index c62bba8..5bbf057 100644 --- a/.gitea/workflows/build-and-push.yml +++ b/.gitea/workflows/build-and-push.yml @@ -51,32 +51,36 @@ jobs: echo "$ACR_PASSWORD" | docker login "$ACR_REGISTRY" \ --username "$ACR_USERNAME" --password-stdin - - name: Ensure proxy_net exists - run: docker network inspect proxy_net >/dev/null 2>&1 || docker network create proxy_net - - - name: Create buildx builder on proxy_net - run: | - docker buildx rm ci-builder >/dev/null 2>&1 || true - docker buildx create \ - --name ci-builder --use \ - --driver docker-container \ - --driver-opt network=proxy_net \ - --driver-opt env.http_proxy=http://proxy:7890,env.https_proxy=http://proxy:7890 - - - name: Build Docker Image (via proxy) + - name: Build Docker Image (proxy_net, one step) env: IMAGE: ${{ secrets.ACR_REGISTRY }}/${{ secrets.ACR_NAMESPACE }}/${{ vars.IMAGE_NAME }} TAG: ${{ steps.meta.outputs.tag }} run: | set -euo pipefail + + # 1) 确保网络存在 + docker network inspect proxy_net >/dev/null 2>&1 || docker network create proxy_net + + # 2) 重新创建并启用 builder,加入 proxy_net 且注入默认代理 + docker buildx rm ci-builder >/dev/null 2>&1 || true + docker buildx create \ + --name ci-builder --use \ + --driver docker-container \ + --driver-opt network=proxy_net \ + --driver-opt env.http_proxy=http://proxy:7890,env.https_proxy=http://proxy:7890 \ + >/dev/null + + # 3) 构建(通过代理)。若想本步直接推仓库,把 --load 改成 --push docker buildx build \ --builder ci-builder \ --progress=plain \ --build-arg HTTP_PROXY=http://proxy:7890 \ --build-arg HTTPS_PROXY=http://proxy:7890 \ --build-arg NO_PROXY=localhost,127.0.0.1,proxy \ + --load \ -t "${IMAGE}:${TAG}" -f docker/Dockerfile . + - name: Push Docker Image env: IMAGE: ${{ secrets.ACR_REGISTRY }}/${{ secrets.ACR_NAMESPACE }}/${{ vars.IMAGE_NAME }} diff --git a/docker/Dockerfile b/docker/Dockerfile index 0e1c704..ab095e5 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -7,7 +7,11 @@ ARG NO_PROXY ENV HTTP_PROXY=$HTTP_PROXY \ HTTPS_PROXY=$HTTPS_PROXY \ NO_PROXY=$NO_PROXY \ + http_proxy=$HTTP_PROXY \ + https_proxy=$HTTPS_PROXY \ + no_proxy=$NO_PROXY \ PATH="/root/.local/bin:$PATH" + WORKDIR /app COPY . /app