【发布时间】:2017-12-27 14:47:33
【问题描述】:
我已经在 github 上对一个 nodejs 应用程序进行了 docker 化。我的 Dockerfile 基于官方的 nodejs 图像。官方 node-repo 无缝支持多种架构(x86、amd64、arm)。这意味着我可以在不同的机器上构建完全相同的 Dockerfile,从而为各自的架构生成不同的图像。
所以我也在尝试为我的应用无缝地提供相同的架构。但是怎么做? 我的目标是尽可能地自动化它。 我知道理论上我需要创建一个 docker-manifest,它充当 docker-repo 并将最终用户-docker-clients 重定向到他们合适的图像。
Docker-Hub 本身可以监控 github 存储库并启动自动构建。那会照顾amd64图像。但是剩下的架构呢? 还有一个名为“TravisCI”的服务,我想它可以在 qemu 的帮助下处理 arm-build。 然后我认为清单存储库可以静态引用这两个存储库。但这仍然使一些架构无法实现。
但是使用多种服务/方式来构建同一个应用程序感觉不对。有谁知道这个问题的更好和更完整的解决方案? 它基本上是通过几台机器运行相同的 dockerfile 并将它们记录在清单中。
【问题讨论】:
-
也对人们如何解决这个问题感兴趣
-
我不会尝试答案,因为我也在为此苦苦挣扎,我最终使用了真实的设备和 cron。见blog.slucas.fr/blog/docker-multiarch-manifest-hub-1
标签: docker github travis-ci dockerhub