docker - 如何在 GitHub Actions 中构建的 Dockerfile 中使用 github 令牌并尝试克隆私有存储库?
问题描述
这是我的 GitHub 操作步骤。PRIVATE_REQUIREMENT_OWNER_TOKEN
secret 已创建并包含具有完整repo
范围的 GitHub 令牌:
- name: Build docker image
id: docker_build
uses: docker/build-push-action@v2
with:
push: false
context: .
tags: 'username/image:latest'
secrets: |
"github_token=${{ secrets.PRIVATE_REQUIREMENT_OWNER_TOKEN }}"
这是 requirements.txt 中的一行,其中包含指向私有存储库的链接,并在上述步骤中从 Dockerfile 构建 docker 映像时尝试安装:
git+ssh://git@github.com/username/private-repository
该行已添加到Dockerfile
RUN --mount=type=secret,id=github_token pip install https://$(cat /run/secrets/github_token)@github.com/username/private-repository.git
在 GitHub Actions 中引发以下错误:
#11 [ 6/12] RUN --mount=type=secret,id=PRIVATE_REQUIREMENT_OWNER_TOKEN_SECRET pip install https://$(cat /run/secrets/PRIVATE_REQUIREMENT_OWNER_TOKEN_SECRET)@github.com/username/private-repository.git
#11 sha256:b3d88dd9813db3257b15f53f1eb5a4c593c69ff98ec03cc4d70d564df1a1f7f6
#11 0.697 Collecting https://****@github.com/vassilyvv/django-sinbad.git
#11 0.790 ERROR: HTTP error 404 while getting https://****@github.com/username/private-repository
.git
#11 0.791 ERROR: Could not install requirement https://****@github.com/username/private-repository
.git because of HTTP error 404 Client Error: Not Found for url: https://github.com/username/private-repository
for URL https://****@github.com/username/private-repository.git
但是当我尝试使用相同的令牌在本地机器上克隆存储库时,它运行良好:
git clone https://<token>@github.com/username/private-repository.git
我完全不知道如何使用它github_token
来成功克隆上面提到的私有存储库。
我的目标是在从 GitHub Actions 中的 Dockerfile 构建 docker 映像时克隆私有 GitHub 存储库。而且我几乎可以肯定我已经执行了一些错误的步骤。请帮忙!
解决方案
我认为这是提供给pip
. 如果您需要从私有 git 存储库安装 python 包,您可以使用以下格式。
pip install git+https://<PERSONAL_ACCESS_TOKEN>@github.com/username/private-repo.git
所以在你的情况下,它将是:
pip install git+https://$(cat /run/secrets/github_token)@github.com/username/private-repository.git
推荐阅读
- html - 更改特定按钮的离子按钮颜色而不是所有按钮
- wordpress - 如何在 WordPress 中为帖子创建第二个特色图片框
- c# - 在默认注入的 IHttpClientFactory 中禁用 SSL 证书验证
- python - 如何去除图像中导致图像特征丢失的额外发光?
- javascript - 如何停止无限循环?
- reactjs - 在反应中使用recoil.js,在类组件中不使用钩子
- spring - 我想知道下面的代码是否正确
- c++ - 如何将 I->getType() 作为参数传递给 llvm 中的 CreateCall?
- view - 如何在获取高度的同时将视图传递给结构?
- javascript - JS将数组内的对象移动到由属性名称索引的父对象的主体的最快方法?