跨平台环境下的Docker compose

问题描述 投票:0回答:2

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

我的应用程序部署了两次 - 一次在 Windows 容器上,一次在 Linux 容器上,

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

我可以使用 docker compose 来构建这 3 个服务吗?

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

我说得对吗?也许我错了,有解决方法吗?

docker docker-compose docker-image
2个回答
21
投票

使用版本 2.4 编写文件支持

platform
选项,该选项允许指定服务平台。

platform: osx
platform: windows/amd64
platform: linux/arm64/v8

https://github.com/docker/docker.github.io/blob/master/compose/compose-file/compose-file-v2.md#platform

应该注意的是,v3 撰写文件不支持

platform
选项。

可以在这里找到更深入的解释:https://devblogs.microsoft.com/premier-developer/mixing-windows-and-linux-containers-with-docker-compose/


0
投票

对于 docker compose,您可以在构建选项中使用“platforms:”。它作为一个数组工作,例如:

build:
  context: mydir
  dockerfile: Dockerfile
  platforms:
    - "linux/amd64/v2"
    - "linux/arm64"
© www.soinside.com 2019 - 2024. All rights reserved.