【发布时间】:2020-01-16 16:10:25
【问题描述】:
好久没在SO上发帖了,希望没有违反规定。
我的~/.bash_profile 中有一个环境变量导出如下,我确保运行source ~/.bash_profile:
export HOSTNAME=some-name
这就是我的docker-compose.yml 的样子:
version: '3'
services:
someservice:
build:
context: .
dockerfile: ./Dockerfile
image: ...
container_name: ...
restart: unless-stopped
hostname: "someservice.${HOSTNAME:?Error: env var HOSTNAME is not defined or is empty}"
...
如果我运行docker-compose up -d,我会得到以下错误:
ERROR: Invalid interpolation format for "hostname" option in service "some-service":
"someservice.${HOSTNAME:?Error: env var HOSTNAME is not defined or is empty}"
如果我用some-name替换上面的HOSTNAME,我会得到以下错误:
Starting someservice ... error
ERROR: for someservice Cannot start service: OCI runtime create failed:
container_linux.go:346: starting container process caused "process_linux.go:449:
container init caused \"sethostname: invalid argument\"": unknown
ERROR: Encountered errors while bringing up the project.
知道我收到错误的原因以及如何排除和/或修复它吗?太感谢了!
Edit1:修正了我的 export 中的错字
Edit2:这可能有助于故障排除:从 yaml 文件中删除 ERROR 部分解决了该问题。所以,在我的docker-compose.yml 中,我只有:
...
hostname: "someservice.${HOSTNAME}
...
【问题讨论】:
-
为容器设置
hostname:几乎没有明显的效果,通常可以删除此设置。
标签: docker docker-compose environment-variables centos7