跨平台环境下的Docker Compose

13

假设我有一个跨平台的环境,

我的应用程序分别部署在Windows容器和Linux容器上,

此外,我还有一个DB容器(Linux)。

我能使用Docker Compose构建这三个服务吗?

我认为不行——因为我使用的镜像是为特定的操作系统类型构建的。

我是正确的吗?也许我错了,有什么解决方法吗?


仅使用 docker-compose 文件是不可能的,因为您无法在同一台机器上运行 Windows 和 Linux 的映像。可能的解决方案是使用 docker-machine 创建一个 Linux 虚拟机或类似的东西,但无论如何,您都不能通过 docker 或类似的方式将它们链接起来... 您必须使用 docker 外部的网络来连接它们。 - Lucas dos Santos Abreu
1
这篇文章并没有回答问题,但应该会很有用:https://blog.codeship.com/cross-platform-docker-development-environment/ - wallismark
1个回答

19

3
不幸的是,platform-option 不再是 docker-compose 的一部分,据我所知,该功能仅在已弃用的 lcow docker-for-windows 实现中得到支持。 由于此主题仍在建设中,文档存在矛盾之处,请查看最新的 github 问题。 - Arman
1
现在看起来使用buildx是从docker-compose文件构建跨平台的正确方式。docker buildx bake --push --set *.platform=linux/amd64,linux/arm64请参见https://dev59.com/T1MI5IYBdhLWcg3wBGqC#64563302 - BenCaldwell
平台选项在最新版本中对我来说似乎是有效的。我的问题是,如果我可以定义一个变量(即在文件或环境中)从那里获取值,以便每个开发人员都可以设置自己的值。 - Carlos de Luna Saenz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接