shell - Docker compose 找不到 $PWD 环境变量

标签 shell docker environment-variables

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

最佳答案

您不需要 ${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 命令的命令行标志。如果变量中的每一个都为空,您将收到该警告。

关于shell - Docker compose 找不到 $PWD 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948232/

相关文章:

linux - Bash shell 脚本。变量作为参数。无引号与双引号

azure - 如何构建代表 Azure 数据湖(第 2 代)的 Docker 镜像?

node.js - 无法使用 Node.js 连接到我的 Docker RabbitMQ

amazon-web-services - RDS 环境变量对 AWS 上的 Elastic Beanstalk 实例不可用?

mysql - 在范围内选择一个数字,它不会与 bash shell 中存在的数字冲突

linux - Bash 记住两个脚本出现之间的值

java - 如何使 sh 脚本成为 Mac OS 的应用程序

azure - 如何编辑将标志(--ipc=host)传递给azure管道中的docker run -d -p?

linux - 在调用 shell 时设置环境变量的最佳方法

node.js - 使用 NVM 在 Sublime 中设置路径