在CLI上指定服务容器的主机名?

使用docker-compose,我可以指定服务容器的主机名。

泊坞窗,compose.yml:

version: "3" services: db: image: library/mysql:latest app: build: . hostname: my-hostname 

而不是在撰写文件中定义这个,可以在docker-compose build或者docker-compose up阶段将它作为CLI的一个选项传入吗?

docker-compose支持环境variables。 所以你可以通过它

 version: "3" services: db: image: library/mysql:latest app: build: . hostname: ${APP_HOSTNAME} 

然后使用

 APP_HOSTNAME=myapp docker-compose up 

要么

 export APP_HOSTNAME=myapp docker-compose up 

编辑-1

如果你想在环境中使用默认值也是可能的

可以使用典型的shell语法提供内联缺省值:

如果VARIABLE在环境中未设置或为空,$ {VARIABLE:-default}将评估为默认值。 只有在环境中未设置VARIABLE时,$ {VARIABLE-default}才会计算为默认值

所以你可以更新你的docker-compose到下面,它将在所有的terminal工作

 version: "3" services: db: image: library/mysql:latest app: build: . hostname: ${APP_HOSTNAME:-myapp}