有人知道dockerhub如何管理自动构建存储库的描述吗?
Dockerhub具有很好的功能,即源存储库中的README.md被视为存储库描述。实际上,存储库的描述并不总是来自主分支的最新README.md。它似乎是随机的或与最新版本相关。
示例存储库:
分支机构:
标签:
现在的问题是:如果我将所有标签放在Autobuild上,那么它不可重现,哪个README.md将显示在存储库描述中。
是否有诀窍或是否有API可以设置说明?
我希望始终显示我的主/ README.md的最新提交!
答案 0 :(得分:8)
构建过程会在与
README.md
相同的目录中查找Dockerfile
。
(参见例如tombatossals/dockerhub/nodejs
)
如果您的存储库中有
README.md
个文件,则会在存储库中将其用作完整描述。如果在构建后更改完整描述,则在下次自动构建运行时会被覆盖 要进行更改,请修改Git存储库中的README.md。
注意,mentioned here为Andy,这不适用于手动构建。
对于手动构建(您推送自己的图像),Docker Hub不会窥视您的图像,也无法了解您的自述文件。
您需要手动将Readme
文字添加到Information
部分。
OP问道:
是否有API调用,我可以设置回购的描述?
我不知道(Docker Hub API was deprecated in docker 1.8+)
Issue 467报告了同样的不确定性:
有时,自动构建系统仍将使用顶级
README
文件。
issue 402报告:
“每隔一段时间,完整说明和
Dockerfile
页面中的内容都来自旧的发布标记。”
然后:
“拉
README
的规范是否已更改?现在它从源存储库而不是指定README
的目录中获取顶级Dockerfile
;考虑到常见的用例是Dockerfiles的存储库,这完全弄乱了文档。“
Issue 300确认:
我注意到两个明显的失败:
README.md
README.md
位于repoository的顶级(以及Dockerfile),“有时”也没有读入,并且描述留空;即使在强制推送到底层存储库之后也是如此。答案 1 :(得分:2)
dockerhub-description GitHub Action可以从README.md文件更新Docker Hub描述。
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v2.1.0
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_REPOSITORY: peterevans/dockerhub-description
您还可以独立于其他CI工具中的GitHub Actions使用它。
docker run -v $PWD:/workspace \
-e DOCKERHUB_USERNAME='user1' \
-e DOCKERHUB_PASSWORD='xxxxx' \
-e DOCKERHUB_REPOSITORY='my-docker-image' \
-e README_FILEPATH='/workspace/README.md' \
peterevans/dockerhub-description:2.1.0
答案 2 :(得分:1)
如果您正在寻找更新自述文件的工具,请查看docker-pushrm。这是一个Docker CLI插件,用于向Docker添加一个新命令:docker pushrm
(用于: push自述文件)。要在Dockerhub上更新自述文件,请运行:
docker pushrm my-user/my-repo
它使用保存的Docker登录名,因此在docker login
之后它“正常工作”。它还支持其他容器注册中心(码头,港口)。
对于CI使用,它也可以作为Docker container和github action来使用。
如果您正在寻找技术答案,请查看docker-pushrm
中的the code。简而言之:您需要使用用户名/密码to get a JWT token发出REST API请求。然后使用该JWT令牌向update repo info发出另一个REST API请求。