首页 > 解决方案 > GitHub 操作使用 CloudFlare 和 Traefik 构建 Docker 映像并将其推送到私有注册表,导致 413 实体太大

问题描述

我一直在尝试通过 GitHub Actions 构建和推送我的 Docker 映像,并将它们推送到我的 Docker Registry。该注册表使用 Cloudflare 和服务器上的 Traefik 作为反向代理。

为此,我一直在使用以下工作流文件:

name: Docker publish

on:
  push:
    branches: [ develop ]

  workflow_dispatch:

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v1

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1

      - name: Login to registry
        uses: docker/login-action@v1
        with:
          registry: https://registry.domain.com
          username: ${{ secrets.REGISTRY_USERNAME }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

      - name: Build and push web
        id: docker_build_web
        uses: docker/build-push-action@v2
        with:
          push: true
          context: ./web
          tags: registry.domain.com/web:latest

      - name: Build and push api
        id: docker_build_api
        uses: docker/build-push-action@v2
        with:
          push: true
          context: ./api
          tags: registry.domain.com/api:latest

在开始构建 Web 项目的第一个图像之前,一切都运行良好。在构建网络图像一段时间后,它给出了错误:

错误:buildx 调用失败:错误:无法解决:rpc 错误:代码 = 未知描述 = 无法复制:意外状态:413 请求实体太大

我已经寻找了很长一段时间,但似乎无法找到解决问题的方法,甚至找不到发生此问题的原因。目前我唯一的猜测是我的图像太大并且被 CloudFlare 或 Traefik 阻止。

标签: dockergithubgithub-actionscloudflaretraefik

解决方案


推荐阅读