Docker compose找不到$PWD环境变量

8wigbo56  于 2024-01-06  发布在  Docker
关注(0)|答案(4)|浏览(126)

这是我的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/

b5buobof

b5buobof1#

您不需要${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命令的命令行标志。如果这些都为空,你会得到警告。

f4t66c6m

f4t66c6m2#

我的建议:将所有$PWD更改为.

vuv7lop3

vuv7lop33#

如果您使用sudo运行,$PWD将不起作用。请尝试Docker为Linux https://docs.docker.com/engine/install/linux-postinstall/推荐的设置。
Sudo将以不同的用户身份运行,使用不同的env

$ sudo env | grep -i pwd
$ env | grep -i pwd
PWD=/home/user
OLDPWD=/

字符串

e5njpo68

e5njpo684#

如果你是really need absolute paths,那么在调用docker-compose up之前调用这个:

set PWD=%CD%

字符串

相关问题