当前位置: 首页 > 知识库问答 >
问题:

Docker compose找不到$pwd环境变量

云瑞
2023-03-14

这是我的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/"
WARNING: The PWD variable is not set. Defaulting to a blank string.

共有1个答案

邢灿
2023-03-14

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

 类似资料:
  • 问题内容: 当我使用chdir()更改当前工作目录时,为什么getenv(“ PWD”)没有给出当前的工作目录?我还需要setenv(“ PWD”,newDir,1)吗? 输出:(可执行文件的位置是/ home / user) 更改/启动 目录已更改。当前的工作目录是“ / home / user”“ / boot” 问题答案: 是的,如果要更改环境变量,则必须明确地执行此操作。 它是在事件的正常

  • 问题内容: 我想在詹金斯中设置很多变量。我试图把他们的,和该的用户,但是当构建正在发生詹金斯无法找到他们。 唯一可行的方法是将所有env变量放入其中,如下所示: 但是我不认为这是个好方法。 在詹金斯中设置环境变量的正确方法是什么? 问题答案: 在我看来,这很正常。并且应被视为文本凭据,您可以使用 指令添加环境变量。 如果你需要保持环境变量分开,你可以创建一个包含所有的常规文件,然后将该文件加载到使

  • 我在Windows 7机器上运行。 我安装了JavaJDK1.7。 我已经将Path和PATH环境变量设置为指向Javajdk 1.7/bin目录。 在命令提示符下执行,将生成java版本1.7.0_45。 然而,当我执行时,它会说: javac不被识别为内部或外部命令 我真的被这个问题难住了。所有其他线程似乎都通过更改环境变量解决了类似的问题,但这并不能解决我在这种情况下的问题。 当我在Cons

  • 我是混合应用程序开发的新手。我被分配了一个开发Android的任务 当我在Lamp环境中工作时,我开始安装相同的软件。我安装的软件是Cordova npm Android studio apache ant PhoneGap 但即使在安装并遵循互联网上给出的所有说明之后。我无法为测试目的准备构建。 下面是我在运行命令sudo corova要求时面临/获得的错误 android的需求检查结果:Jav

  • 我和Jenkins一起使用Git插件。 我尝试访问环境变量,我得到了。然后,当我使用Groovy脚本打印环境变量时,我发现没有Git环境变量: 为了执行Jenkins脚本,我使用了Groovy插件,包括前一步“执行系统Groovy脚本”和以下代码: 为什么我看不到任何GIT环境变量?

  • 我猜这是因为它没有$app_vol_dir,但为什么会这样呢?如果docker compose扩展了另一个定义Environment:variables的compose文件