【问题标题】:current directory variable substitution in docker-compose for windows 10Windows 10 的 docker-compose 中的当前目录变量替换
【发布时间】:2020-01-18 14:43:23
【问题描述】:

我正在尝试在我的 docker-compose 中创建绝对路径,使用变量替换到当前目录的路径。我将这些路径作为环境变量传递到我的容器中。 更准确地说,我尝试通过 cd 命令而不是通过 PWD env var 传递它。应该可以在 .env (https://github.com/docker/compose/issues/4081) 中声明 env var。 不幸的是,我无法让替换工作。

我尝试了不同的方法:

  • 将 var 声明为 .env 中的环境变量或直接在环境列表中

  • 使用 powershell 和命令提示符运行

  • 在两个 shell 中使用 %cd% 和 $pwd

  • 转义 $ 和 %,用额外的 $ 或 % 将它们加倍

docker-compose 的相关部分:

version: "3.2"
services:
   jupyter:
       environment:
           - WORKING_DIR=%cd% # OR $(pwd) OR $VAR

当我使用 .env 时:

VAR=%cd% or ${pwd}

当我在容器中“设置”环境变量时,它只会显示我使用的命令(%cd% 等),就好像它们是字符串一样。

我不太明白 docker-compose 在哪里格式化/执行:在我用来调用 docker-compose 的 shell 中,在我的 docker 守护进程运行的 linux 映像中,等等?

编辑:

  • 我尝试了 MacOS 版本,但问题仍然存在! (使用适当的 bash 变量替换)

【问题讨论】:

    标签: docker-compose windows-10 environment-variables


    【解决方案1】:

    不是一个完整的解决方案,但也许您可以编写脚本:

    如果您在 docker compose 文件中将 DOCUMENT_ROOT 指定为变量

    environment:
               - WORKING_DIR=${DOCUMENT_ROOT}
    

    并且在您的工作目录中有一个 .env 文件,其中包含 DOCUMENT_ROOT=./ ,那么就可以通过运行来使用本地的.env文件了

    docker-compose -f /path/to/docker-compose.yml up
    

    https://docs.docker.com/compose/compose-file/#env_file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-11
      • 2023-03-03
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      相关资源
      最近更新 更多