Docker compose docker compose for windows 10中的当前目录变量替换

Docker compose docker compose for windows 10中的当前目录变量替换,docker-compose,windows-10,environment-variables,Docker Compose,Windows 10,Environment Variables,我试图在docker compose中创建绝对路径,使用变量替换当前目录的路径。我将这些路径作为环境变量传递到容器中。 更确切地说,我尝试通过cd命令传递它,而不是通过PWD env var传递。应该可以在.env()中声明env var。 不幸的是,我无法让替代品发挥作用 我尝试了不同的方法: 将var声明为.env中的环境变量或直接声明为环境列表中的环境变量 使用powershell和命令提示符运行 对两个外壳使用%cd%和$pwd 逃逸$和%,用额外的$或%加倍 docker组件的相关

我试图在docker compose中创建绝对路径,使用变量替换当前目录的路径。我将这些路径作为环境变量传递到容器中。 更确切地说,我尝试通过cd命令传递它,而不是通过PWD env var传递。应该可以在.env()中声明env var。 不幸的是,我无法让替代品发挥作用

我尝试了不同的方法:

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

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

  • 对两个外壳使用%cd%和$pwd

  • 逃逸$和%,用额外的$或%加倍

docker组件的相关部分:

version: "3.2"
services:
   jupyter:
       environment:
           - WORKING_DIR=%cd% # OR $(pwd) OR $VAR
当我使用.env时:

VAR=%cd% or ${pwd}
当我在容器中“设置”环境变量时,它只显示我使用的命令(%cd%,etc),就好像它们是字符串一样

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

编辑:

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

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

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

      environment:
                 - WORKING_DIR=${DOCUMENT_ROOT}
      
      并且在工作目录中有一个.env文件,其中包含
      DOCUMENT\u ROOT=./
      ,则可以通过运行

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