我正在使用Travis CI从Dockerfiles构建docker镜像,然后成功将它们推送到Docker Hub.
我已经创建了一个MD文件来描述图像以及如何使用它.我想在完整描述部分的Docker Hub上有相同的描述.
由于我将来可能会更新说明,因此我想让Travis CI使用新映像自动更新基于存储库中MD文件的描述.
谁知道怎么做?
由于Docker Hub不公开任何API,因此远程向Docker Hub发送内容的唯一方法是使用该docker push
命令,这限制了发送图像的用途.
另一方面,如果您让Docker Hub服务从Github或Bitbucket存储库为您构建映像,那么Docker Hub将通过获取该README.md
存储库中找到的文件的内容来更新长描述.请参阅Docker Hub的Automated Build文档中的了解构建过程部分.
这意味着您在Github或Bitbucket上托管Dockerfile和README.md文件.
如果你真的需要首先在TravisCI上构建你的图像(也许是因为你也在构建的图像上运行自动化测试),那么你可以让TravisCI在Docker Hub上触发webhook,告诉Docker Hub在TravisCI确定它正在通过后构建图像测试.
为此,在Docker Hub中,像配置自动构建一样配置图像(因此关联Github或Bitbucket项目),但是停用自动化功能:
然后在Build settings页面上向下滚动到Build Trigger部分并复制触发URL:
现在编辑.travis.yml文件并添加以下块(请注意
和
占位符):
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// /trigger/$DOCKER_HUB_TOKEN/
然后转到Travis CI网站上的项目页面,打开项目设置:
并DOCKER_HUB_TOKEN
使用Docker Hub Build Settings页面上的触发器令牌值将环境变量添加到Travis CI项目:
您仍然需要与Docker Hub项目关联的Github或Bitbucket存储库,但Travis CI将指示Docker Hub何时构建您的映像.