1

我一直在尝试在我的 github 项目中设置一个容器工作流,以便每次推送到 repo 时都会触发它。它必须从默认的 Dockerfile 构建容器镜像并将镜像推送到我的 GitHub 容器注册表 (GHCR)。在我可以将图像推送到注册表之前,我需要进行身份验证。我有一个 PAT(个人访问令牌),我可以从终端使用它进行手动推送。然后我为它做了一个秘密,以便我可以在工作流程中使用它。到目前为止,我还无法通过工作流程中的身份验证步骤。

这是我的容器工作流程 yaml:。

name: Docker Image CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:

  build:

    runs-on: ubuntu-latest
        

    steps:
    - uses: actions/checkout@v2
      with: 
        repo-token: ${{secrets.GHCR_LOGIN}}
    - name: Build the Docker image
#       run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
      run: docker build -t ghcr.io/myusername/repo:latest .
    # - name: Authenticate in the Workflow
     run: echo $GHCR_LOGIN |docker login ghcr.io -u myusername --password-stdin
    - name: Push the Docker image
      run: docker push ghcr.io/myusername/repo:latest

我在这个定义中得到的错误是 docker 无法从非 tty 环境中的标准输入进行身份验证。但是,必须有一种方法可以将秘密或密码传递给 docker。

4

0 回答 0