Docker compose Docker compose.env文件内部变量替换

Docker compose Docker compose.env文件内部变量替换,docker-compose,environment-variables,Docker Compose,Environment Variables,我试图在.env文件中执行变量替换,但迄今为止没有任何运气 我一直在查看docker compose文档,但没有发现任何提及这一点的内容(或任何在线示例),但如果不可能的话,这似乎是一件令人惊讶的事情 我说的是在我的.env文件中执行类似的操作: // .env SOME_LOCATION=/path/to/some/location CONFIG_FILE=${SOME_LOCATION}/config CONSTANT_FILE=${SOME_LOCATION}/constants (此

我试图在
.env
文件中执行变量替换,但迄今为止没有任何运气

我一直在查看docker compose文档,但没有发现任何提及这一点的内容(或任何在线示例),但如果不可能的话,这似乎是一件令人惊讶的事情

我说的是在我的.env文件中执行类似的操作:

// .env
SOME_LOCATION=/path/to/some/location

CONFIG_FILE=${SOME_LOCATION}/config
CONSTANT_FILE=${SOME_LOCATION}/constants
(此示例使
CONFIG\u文件
等于字符串
${SOME\u LOCATION}/CONFIG
,而
常量\u文件
也会发生同样的情况)

我意识到这在
compose.yml
文件中是可能的,语法如下,但它能在
.env
文件中完成吗


我使用的是docker compose版本1.24.1,如果不可能,那么我将只复制这些类型的内容,但通过您的配置复制相同的值总是感觉脏兮兮的。

您可以在shell脚本中使用export命令更改或添加.env变量

像这样的文件路径

-project
  -> docker-compose.yml
  -> .env
  -> start.sh
docker-compose.yml start.sh 环境署署长 最后运行这个命令

sh start.sh

start.sh文件将添加配置文件变量并运行docker compose。您可以使用配置文件和docker compose.yml中的某些位置。

是否有其他方法不需要在docker compose中设置它们?是.env文件的唯一可能语法
THIS=that
?简短回答:您不能替换.env文件中的变量。它适用于docker compose(1.29.1)的最新版本。
export "CONFIG_FILE=${SOME_LOCATION}/jira_vol"
docker-compose up -d
SOME_LOCATION=./volumes
sh start.sh