我有一个安装了docker的Linux裸机服务器。
我在计算机上处理一个asp.net核心项目。
我的源代码被推送到github上。
每次我提交并推送内容时,github都会在我的docker hub帐户上触发一个webhook。
Docker中心为我构建了一个新映像,其中包含我的asp.net核心应用程序二进制文件。 (docker hub也运行测试)
当我在服务器上手动拉动该图像时,该图像工作正常。
我的问题是如何自动执行此操作?我的服务器是否可以通过某种方式“检测”到docker hub包含映像的新版本并运行某些操作以拉出该映像并自动触发数据库迁移?
谢谢
答案 0 :(得分:0)
如果您有一个公共IP,dockerhub
等外部互联网可以访问您,那么您可以使用Docker Hub Webhooks:
您可以像下图一样创建webhooks,设置外部可以访问您的服务的url,在推送图像时,它将一些json数据发布到您提供的url中,其中一个示例数据here,然后是您自己的url可以接收数据并根据需要执行相关操作。
而且,如果您使用jenkins,则有很多插件可以帮助您完成类似的操作:请参考Triggering Docker pipelines with Jenkins,也请参考Polling Docker Registries for Image Changes
如果您没有dockerhub
可以访问的公共IP,那么我想您必须轮询dockerhub才能查看那里是否有新映像...