Gitea Action构建推送Docker镜像报404错误,疑action版本问题求助
问题分析与解决办法
首先明确:docker/build-push-action@v5版本没问题,不是导致404错误的原因。
你遇到的404错误核心是没匹配Gitea内置Docker镜像仓库的路径规则,具体细节:
- Gitea的容器镜像仓库要求镜像标签必须包含「用户名/仓库名」的层级结构,比如你的Gitea用户名是
robert,正确的镜像标签应该是my.domain.com/robert/ebooks:xxx,而非你当前写的my.domain.com/ebooks:xxx。 - Gitea会把镜像仓库映射到
v2/<用户名>/<仓库名>/blobs/uploads/这类路径,缺少用户名的话,系统找不到对应仓库目录,直接返回404。
另外需要确认两个前置条件:
- 你的Gitea已启用容器镜像仓库功能:检查Gitea的
app.ini配置文件,[registry]段里的ENABLED需设为true。 - 对应镜像仓库已存在:可以在Gitea网页端手动创建和代码仓库同名的容器镜像仓库,部分版本的Gitea会在推送时自动创建,但手动提前创建更稳妥。
修改后的Action配置示例(替换<你的用户名>为实际Gitea用户名):
name: build run-name: build on: [push] jobs: build: runs-on: default steps: - uses: actions/checkout@v4 - name: setup docker buildx uses: docker/setup-buildx-action@v3 - name: login to container registry uses: docker/login-action@v2 with: registry: my.domain.com username: ${{secrets.USER}} password: ${{secrets.TOKEN}} - name: build and push docker image uses: docker/build-push-action@v5 with: context: . file: ./Dockerfile push: true tags: "my.domain.com/<你的用户名>/ebooks:${{gitea.sha}},my.domain.com/<你的用户名>/ebooks:latest"
内容的提问来源于stack exchange,提问作者Robert Hofmann
相关产品推荐
相关产品推荐

