这是我的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/"
当我在shell中运行它时,在docker-compose.yml的目录中,我得到:
WARNING: The PWD variable is not set. Defaulting to a blank string.
并且撰写以PWD为空开始。
我没有在文件中看到任何错误,如下所示:https://docs.docker.com/compose/environment-variables/
答案 0 :(得分:17)
你不需要${PWD}
,你只需要使路径相对而且compose会扩展它(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/"
至于为什么compose没有看到这个变量,这取决于你的shell。 Compose查找导出的环境变量,.env文件的内容以及docker-compose命令的命令行标志。如果每个变量都为空,那么你就会收到警告。
答案 1 :(得分:7)
我的建议:将所有$PWD
更改为.
答案 2 :(得分:6)
如果您使用sudo
运行,则$ PWD将不起作用。尝试从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=/
答案 3 :(得分:0)
我的一个环境变量有相同的问题。在更仔细地查看我的bashrc
文件时,我发现我没有导出该变量。
之前:
VAR=<value>
之后:
export VAR=<value>
答案 4 :(得分:0)
如果您really need absolute paths,则在调用 docker-compose up
之前调用它:
set PWD=%CD%
答案 5 :(得分:-5)
在Windows上,我遇到了同样的问题。
为解决“ mariadb不断重启”问题,我使用的是这个
mariadb:
image: mariadb
volumes:
- ${PWD}/data:/var/lib/mysql
它解决了,但总是向我显示消息:
WARNING: The PWD variable is not set. Defaulting to a blank string.
然后我只是用这种方式,而没有使用“”。一开始:
mariadb:
image: mariadb
volumes:
- /data:/var/lib/mysql