我可以引用服务名称docker-compose.yml

时间:2016-05-16 08:36:00

标签: docker docker-compose

在docker-compose.yaml中,有没有办法引用服务名称(web,数据库),因此在下面的代码中,卷将被创建为/store/web用于web和{{1}对于数据库?

/store/database

3 个答案:

答案 0 :(得分:1)

docker-compose文档没有提供。

您可能希望使用在堆栈文件中创建卷的常见模式,以便在容器中使用。

version: "2"

services:
  web:
    volumes:
      - web-logs:/var/log/web

volumes:
  web-logs:
    external: true

https://docs.docker.com/compose/swarm/

https://docs.docker.com/compose/compose-file/#variable-substitution https://docs.docker.com/compose/compose-file/#volumes-volume-driver

答案 1 :(得分:0)

我的回答是提取class Thing { String name static constraints = { name nullable: false, blank: false, size: 1..20 } }

docker-compose images

此命令更改此返回

docker-compose images | tail -n +3 | awk '{print $2}' | sed s/.*_//

到此;

$ docker-compose images
    Container           Repository       Tag       Image Id      Size 
----------------------------------------------------------------------
mytool_web_1   mytool_web   latest   e51243243b8c   782 MB

注意:我没有在有多种服务的yml上测试它。

答案 2 :(得分:0)

我想您可以使用变量COMPOSE_PROJECT_NAMEhttps://docs.docker.com/compose/reference/envvars/#compose_project_name

设置项目名称。启动时,此值与服务名称一起添加到容器中。例如,如果您的项目名称为myapp并且包括两个服务dbweb,则Compose分别启动名为myapp_db_1myapp_web_1的容器。