如何自动更新Docker Hub的完整描述?

我使用Travis CI来构buildDockerfiles的Docker镜像,然后将它们推送到Docker Hub上。

我创build了一个描述图像的MD文件以及如何使用它。 我想在完整描述部分的Docker Hub上有相同的描述。

因为我将来可能会更新描述,所以我想让Travis CI自动更新基于存储库中MD文件的描述。

任何人都知道如何做到这一点?

由于Docker Hub不公开任何API ,所以将东西远程发送到Docker Hub的唯一方法是使用docker push命令,这限制了用于发送图像。

另一方面,如果您让Docker Hub服务从Github或Bitbucket存储库为您构build映像,那么Doc​​ker Hub将通过在该存储库中findREADME.md文件的内容来更新详细描述。 请参阅了解 Docker Hub的自动构build文档中的构build过程部分。

这意味着您将您的DockerfileREADME.md文件托pipe在Github或Bitbucket上。


如果你真的需要首先在TravisCI上构build你的图像(也许是因为你也在构build的图像上运行自动化testing),那么你可以让TravisCI在Docker Hub上触发webhook,告诉Docker Hub在TravisCI确定它正在传递testing。

为此,在Docker Hub中,像自动构build (因此关联Github或Bitbucket项目)一样configuration图像,但禁用自动化function:

Docker Hub项目的构建设置

然后向下滚动生成设置页面到生成触发器部分并复制触发器URL:

Docker Hub项目构建触发器

现在编辑您的.travis.yml文件并添加下面的代码块(介绍<your account><your image>占位符):

 after_success: # notify Docker Hub to make a new build - > [ "$TRAVIS_BRANCH" == "master" ] && curl -X POST -H "Content-Type: application/json" --data '{"docker_tag_name": "latest"}' https://registry.hub.docker.com/u/<your account>/<your image>/trigger/$DOCKER_HUB_TOKEN/ 

然后转到Travis CI网站上的项目页面,打开项目设置:

Travis CI项目设置

并使用在Docker Hub构build设置页面上find的触发器标记值将DOCKER_HUB_TOKEN环境variables添加到您的Travis CI项目中:

Travis CI项目环境变量

您仍然需要与您的Docker Hub项目关联的Github或者Bitbucket存储库,但是Travis CI将会指示Docker Hub何时构build您的映像。