假设我有一个跨平台环境,
我的应用程序部署了两次 - 一次在 Windows 容器上,一次在 Linux 容器上,
此外,我还有一个DB容器(Linux)。
我可以使用 docker compose 来构建这 3 个服务吗?
我认为不是 - 因为我使用的图像是为特定操作系统类型构建的。
我说得对吗?也许我错了,有解决方法吗?
使用版本 2.4 编写文件支持
platform
选项,该选项允许指定服务平台。
platform: osx
platform: windows/amd64
platform: linux/arm64/v8
应该注意的是,v3 撰写文件不支持
platform
选项。
可以在这里找到更深入的解释:https://devblogs.microsoft.com/premier-developer/mixing-windows-and-linux-containers-with-docker-compose/
对于 docker compose,您可以在构建选项中使用“platforms:”。它作为一个数组工作,例如:
build:
context: mydir
dockerfile: Dockerfile
platforms:
- "linux/amd64/v2"
- "linux/arm64"