首页 > 解决方案 > Windows 10 的 docker-compose 中的当前目录变量替换

问题描述

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

我尝试了不同的方法:

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 映像中,等等?

编辑:

标签: docker-composewindows-10environment-variables

解决方案


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

如果您在 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


推荐阅读