在docker-compose.yaml中,有没有办法引用服务名称(web,数据库),因此在下面的代码中,卷将被创建为/store/web
用于web和{{1}对于数据库?
/store/database
答案 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_NAME
:https://docs.docker.com/compose/reference/envvars/#compose_project_name
设置项目名称。启动时,此值与服务名称一起添加到容器中。例如,如果您的项目名称为
myapp
并且包括两个服务db
和web
,则Compose分别启动名为myapp_db_1
和myapp_web_1
的容器。>