假设我有一个跨平台的环境,
我的应用程序分别部署在Windows容器和Linux容器上,
此外,我还有一个DB容器(Linux)。
我能使用Docker Compose构建这三个服务吗?
我认为不行——因为我使用的镜像是为特定的操作系统类型构建的。
我是正确的吗?也许我错了,有什么解决方法吗?
假设我有一个跨平台的环境,
我的应用程序分别部署在Windows容器和Linux容器上,
此外,我还有一个DB容器(Linux)。
我能使用Docker Compose构建这三个服务吗?
我认为不行——因为我使用的镜像是为特定的操作系统类型构建的。
我是正确的吗?也许我错了,有什么解决方法吗?
platform
选项的Compose文件,允许指定服务的平台。platform: osx
platform: windows/amd64
platform: linux/arm64/v8
需要注意的是,在v3版本的compose文件中不支持platform
选项。
可以在此处找到更详细的解释: https://devblogs.microsoft.com/premier-developer/mixing-windows-and-linux-containers-with-docker-compose/
docker buildx bake --push --set *.platform=linux/amd64,linux/arm64
请参见https://dev59.com/T1MI5IYBdhLWcg3wBGqC#64563302 - BenCaldwell
docker-compose
文件是不可能的,因为您无法在同一台机器上运行 Windows 和 Linux 的映像。可能的解决方案是使用docker-machine
创建一个 Linux 虚拟机或类似的东西,但无论如何,您都不能通过 docker 或类似的方式将它们链接起来... 您必须使用 docker 外部的网络来连接它们。 - Lucas dos Santos Abreu