根据主机操作系统在Docker Compose中更改映像

时间:2018-11-29 16:25:58

标签: docker docker-compose cross-platform

我正在创建一个PHP应用程序,并使用Docker + Docker Compose运行它。

我的问题是,我希望用户能够在任何操作系统上轻松运行我的项目。但是,ARM处理器(例如Raspberry Pi)不支持官方的mysql:latest映像,因此必须切换到hypriot/rpi-mysql

是否可以在一个Compose文件中或针对每个平台使用单独的文件进行此操作?还是用户在克隆项目时需要手动交换YML文件?

1 个答案:

答案 0 :(得分:1)

您可以将项目拆分为多个YAML文件,将与操作系统无关的内容归为一个,然后将与操作系统无关的归为另一个。 您的文件将如下所示:

docker-compose.yml       -- common stuff lives here
docker-compose-x64.yml   -- lots of OS-dependent services for x64
docker-compose-arm.yml   -- lots of OS-dependent services for arm

然后,您只需要以以下方式启动它:

# for x64
docker-compose -f docker-compose.yml -f docker-compose-x64.yml up ...
# for arm
docker-compose -f docker-compose.yml -f docker-compose-arm.yml up ...