首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker compose找不到$PWD环境变量

Docker compose找不到$PWD环境变量
EN

Stack Overflow用户
提问于 2017-01-31 09:15:24
回答 5查看 77.1K关注 0票数 54

这是我的docker-compose:

代码语言:javascript
复制
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目录中运行它时,我得到:

代码语言:javascript
复制
WARNING: The PWD variable is not set. Defaulting to a blank string.

并且组合以PWD为空开始。

我在文件中看不到任何错误,如下所示:https://docs.docker.com/compose/environment-variables/

EN

回答 5

Stack Overflow用户

发布于 2017-01-31 09:30:28

为此,您不需要${PWD},您只需将路径设置为相对路径,然后compose将扩展它( compose路径与由docker run处理的路径之间的一个主要区别)。

代码语言:javascript
复制
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命令的命令行标志。如果变量中的每一个都是空的,您将收到该警告。

票数 59
EN

Stack Overflow用户

发布于 2020-02-17 19:44:30

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

票数 16
EN

Stack Overflow用户

发布于 2020-05-20 12:41:35

如果您使用sudo运行,则$PWD将无法工作。尝试Docker for Linux https://docs.docker.com/engine/install/linux-postinstall/中推荐的设置。

Sudo将使用不同的env以不同的用户身份运行。

代码语言:javascript
复制
$ sudo env | grep -i pwd
$ env | grep -i pwd
PWD=/home/user
OLDPWD=/
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41948232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档