首页 > 解决方案 > 我无法使用 Github 操作在 Github 内部 docker 注册表中发布图像

问题描述

我创建了以下存储库: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 []

我按照官方教程进行了所有操作,但仍然无法正常工作。

有人知道吗?

标签: dockergithubregistryworkflowgithub-actions

解决方案


你错过了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 失败:错误:推送到注册表时需要标记


推荐阅读