2017-08-14 58 views
4

有没有一种方法可以定义Docker Compose服务,使其仅在您明确请求时才会带来up您可以定义可选的docker-compose服务吗?

也就是说:

docker-compose up 

将不启动它,但

docker-compose up optional_service 

会。

+0

['extends']的潜在工作(https://docs.docker.com/compose/extends/)。 –

+1

相关:请求为此行为添加明确的支持到Docker撰写:https://github.com/docker/compose/issues/1896 – jwodder

+0

对于我来说,你已经回答了你自己的问题。 docker-compose up optional_service不起作用? – hnandarusdy

回答

6

实现此目的的一种方法是在不同的撰写文件中定义您的可选服务。然后启动可选服务,运行:

$ docker-compose -f docker-compose.yaml -f optional-service.yaml up 

举例来说,如果我有一个码头工人,compose.yaml文件看起来像:

version: '2.1' 
services: 
    lb: 
    image: nginx:1.13   
    db: 
    image: redis:3.2.9 

我可以用一个可选的业务扩展。 yaml,看起来像:

version: '2.1' 
services: 
    busy: 
    image: busybox 

请注意,两个撰写文件必须使用相同的撰写文件版本。

您可以在Compose documentation中阅读更多关于它的信息。

+0

您能否链接这些服务? – Dancrumb

+2

默认情况下,Compose项目中的所有服务都会添加到同一个网络中,而不需要彼此链接。运行'docker-compose up',跟随'docker network ls'。您将看到添加了您的Compose项目后命名的网络。这是[撰写网络]的[链接](https://docs.docker.com/compose/networking/)。 –

相关问题