docker - 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 阻止。
解决方案
推荐阅读
- flutter - Flutter 2:更改从父级发送给子级的数据
- mysql - 是否可以为 MySQL 中的表创建数据库范围的别名?
- php - PHP动态输出数组数据
- php - 如何使用 laravel 8 显示保存在数据库中的图像?
- junit4 - JUnit 4 测试结果未在 Eclipse 中显示?
- java - Spring Boot 中 Pojo 中带有 RefreshScope 的 Bean
- c# - 结合使用 AutoMapper Mapping 和 EF Select Query
- dictionary - 问:广达。在文本中找到已识别术语的位置插入代码/标签
- .net-core - DotNet Core 5.0 EF DbContext。无法使用 appsettings.json 中的 ConnectionStrings 运行
- php - Symfony - 使用重复的 EntityType 优化表单