跨平台环境下的 Docker compose

Sha*_*uan 13 docker docker-compose docker-image

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

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

此外,我还有一个数据库容器(Linux)。

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

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

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

小智 19

使用 2.4 版本的 Compose 文件支持选项platform,允许指定服务平台。

platform: osx
platform: windows/amd64
platform: linux/arm64/v8
Run Code Online (Sandbox Code Playgroud)

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

应该注意的是,platformv3 撰写文件不支持该选项。

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

  • 不幸的是,平台选项不再是 docker-compose 的一部分,并且该功能仅在已弃用的 lcow docker-for-windows 实现中受支持。由于该主题仍在建设中,且文档相互矛盾,请查看最新的 github issues。 (3认同)