簡體   English   中英

如何使用 Github 操作正確推送 Docker 圖像

[英]How to correctly push a Docker image using Github actions

I am setting up a Github action to push a Docker image to Docker Hub following Github official README.md for docker/build-push-action@v2 .

這是我在目錄.github/workflows/中的操作

name: Publish Docker image

on:
  push:
    branches: master

jobs:
  push_to_registry:
    name: Push Docker image to Docker Hub
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v1
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
      -
        name: Login to DockerHub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      -
        name: Build and push
        id: docker_build
        uses: docker/build-push-action@v2
        with:
          push: true
          tags: user/app:latest
      -
        name: Image digest
        run: echo ${{ steps.docker_build.outputs.digest }}

在測試了我的 fork 分支中的操作后,我將分支合並到了主倉庫。 令我驚訝的是,登錄步驟失敗,在 Github 操作日志中顯示以下錯誤

Run docker/login-action@v1
  with:
    logout: true
Error: Username and password required

起初我以為我可能錯誤地定義(甚至沒有定義)主倉庫中的秘密,但在向 octokit 提出請求后,我發現它們在那里

{
  total_count: 2,
  secrets: [
    {
      name: 'DOCKER_PASSWORD',
      created_at: '2020-11-04T15:28:55Z',
      updated_at: '2020-11-16T13:11:27Z'
    },
    {
      name: 'DOCKER_USERNAME',
      created_at: '2020-11-04T15:28:55Z',
      updated_at: '2020-11-16T13:11:27Z'
    }
  ]
}

我猜 docker/login-action@v1 沒有使用with:關鍵字之后提供的用戶名和密碼。 我對此感到非常困惑,因為它確實在我的 fork 分支上工作並且不明白為什么with:發送關鍵字logout: true而不是我沒有設置的。

有人對此有更深入的了解嗎?

您能否檢查存儲庫的設置中的秘密是這樣的:

在此處輸入圖片說明

另外,當你說

在測試了在我的 fork 分支中工作的操作后,我將該分支合並到主存儲庫。

這是否意味着主要回購也是你的? 因為秘密不會在 repos 之間轉移。 如果您分叉了另一個用戶的存儲庫並希望貢獻需要機密的工作流更改,則主存儲庫的所有者必須添加具有相同名稱的機密。 此外,在 Pull Requests 工作流運行中不使用機密。 因此,您只能在將更改合並到存儲庫后才能看到它是否有效。

我遇到了同樣的問題,請檢查你在哪里提供你的秘密,現在 GitHub 有兩種類型的秘密,你應該使用如圖所示的操作。 如果你使用依賴機器人。 在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM