我无法使用 Github 操作在 Github 内部 docker 注册表中发布图像

Posted

技术标签:

【中文标题】我无法使用 Github 操作在 Github 内部 docker 注册表中发布图像【英文标题】:I cannot publish images in Github internal docker registry with Github actions 【发布时间】:2021-11-22 11:57:54 【问题描述】:

我创建了以下存储库:https://github.com/d3vpasha/docker

我有一个用于创建节点应用程序的 Dockerfile:

FROM node:12 as node
RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
RUN  apt-get update && \
 apt-get install -y zip
RUN npm i -g npm@latest

我还创建了以下 GitHub 工作流程,用于从 dockerfile 构建映像并将其推送到 GitHub 注册表:

name: webapp

on:
  push:
    branches: ['main']

env:
  REGISTRY: ghcr.io
  IMAGE_NAME: $ github.repository 

jobs:
  build:
    name: "build webapp"
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    steps:
      - name: Checkout the repo
        uses: actions/checkout@v2

      - name: Login to Github container registry
        uses: docker/login-action@v1
        with:
          registry: $ env.REGISTRY 
          username: $ github.actor 
          password: $ secrets.GITHUB_TOKEN 

      - name: Build and push Docker image
        uses: docker/build-push-action@v1
        with:
          push: true

一旦我推送到主分支,GitHub 工作流就会启动并成功完成,但回购的包菜单中没有任何内容,我自己组织的包菜单中也没有。这些是“构建和推送 Docker 映像”步骤的最后几行:

Successfully built 98edd82e75d5
Pushing image []

我按照官方教程按照要求做了所有事情,但仍然无法正常工作。

有人知道吗?

【问题讨论】:

【参考方案1】:

你错过了tags,正确的是:

- name: Build and push Docker image
  uses: docker/build-push-action@v1
  with:
    push: true
    tags: $your_dockerhub_account/$your_dockerhub_repository

顺便说一句,docker/build-push-action 现在是 v2,你可以考虑使用它。如果你使用v2,如果你不指定tags,它会清楚地告诉你下一个错误:

错误:推送到注册表时需要标记 错误:buildx 失败:错误:推送到注册表时需要标记

【讨论】:

谢谢@atline,确实是这样。添加以下行使其工作:标签:$ env.REGISTRY /$ github.actor /$ github.repository :latest

以上是关于我无法使用 Github 操作在 Github 内部 docker 注册表中发布图像的主要内容,如果未能解决你的问题,请参考以下文章

无法在 GitHub 操作中将 Node.js 与 Docker MySQL 数据库连接

无法使用 github 操作将 React Web 应用程序部署到 Firebase 项目

Github 操作无法从 Github 包存储库下载工件

无法将提交推送到GitHub上新创建的存储库

设置 QEMU 时出现 Github 操作错误 - 错误:无法找到可执行文件:docker

GitHub 操作无法识别环境机密 [重复]