所以我想在我的本地docker环境中设置一些服务。我的docker-compose.yml
文件中定义的其中一项服务如下:
version: "3"
services:
solr:
image: solr:latest
ports:
- "8983:8983"
container_name: solr
......这非常简单。
但是,我也想设置另一个有自己的docker-compose.yml
的服务。如果我只是在Dockerfile中为此服务指定FROM
,它就不会像预期的那样工作,因为repo的docker-compose.yml
也包含来自其他存储库的服务。
配置具有自己的docker-compose.yml
文件的服务的正确方法是什么?
在yml文件中使用extend来调用另一个docker-compose文件。在docker-compose.yml中定义任何服务时,您可以声明您正在扩展另一个服务,如下所示:
web:
extends:
file: common-services.yml
service: webapp
参考:https://docs.docker.com/compose/extends/#understand-the-extends-configuration
注意:extend选项已从docker-compose版本-3中删除,并且仅在版本2中可用
参考:https://docs.docker.com/compose/extends/#extending-services