18 shell environment-variables docker
这是我的docker-compose:
version: '2'
services:
couchpotato:
build:
context: ./couchpotato
dockerfile: Dockerfile
ports:
- 5050:5050
volumes:
- "${PWD}/couchpotato/data:/home/CouchPotato/data/"
- "${PWD}/couchpotato/config:/home/CouchPotato/config/"
Run Code Online (Sandbox Code Playgroud)
当我在shell中运行它时,在docker-compose.yml的目录中,我得到:
WARNING: The PWD variable is not set. Defaulting to a blank string.
Run Code Online (Sandbox Code Playgroud)
并且撰写以PWD为空开始.
我没有在文件中看到任何错误,如下所示:https://docs.docker.com/compose/environment-variables/
BMi*_*tch 22
你不需要${PWD}
这个,你只需要使路径相对,compose将扩展它(组合路径和处理的路径之间的一个主要区别docker run
).
version: '2'
services:
couchpotato:
build:
context: ./couchpotato
dockerfile: Dockerfile
ports:
- 5050:5050
volumes:
- "./couchpotato/data:/home/CouchPotato/data/"
- "./couchpotato/config:/home/CouchPotato/config/"
Run Code Online (Sandbox Code Playgroud)
至于为什么compose没有看到这个变量,这取决于你的shell.Compose查找导出的环境变量,.env文件的内容以及docker-compose命令的命令行标志.如果每个变量都为空,那么你就会收到警告.
小智 13
我的建议:全部$PWD
改为.
小智 9
如果您使用sudo
. 尝试 Docker for Linux https://docs.docker.com/engine/install/linux-postinstall/的推荐设置。
Sudo 将以不同的用户身份运行,使用不同的env
.
$ sudo env | grep -i pwd
$ env | grep -i pwd
PWD=/home/user
OLDPWD=/
Run Code Online (Sandbox Code Playgroud)