【问题标题】:Reuse existing environment variables in Docker Compose .env file在 Docker Compose .env 文件中重用现有环境变量
【发布时间】:2019-04-04 08:58:55
【问题描述】:

我参与了一个 Docker Compose 项目,我们利用了 .env 文件的可能性。但是,我发现我不能在构建另一个环境变量时重用一个环境变量,或者重用现有的操作系​​统级环境变量。

例如,这不起作用:

VIRTUAL_HOST=domain.com
LETSENCRYPT_HOST=${VIRTUAL_HOST}
LETSENCRYPT_EMAIL=contact@${VIRTUAL_HOST}

有什么办法吗?

【问题讨论】:

  • Docker 不支持在 .env 文件中嵌套变量
  • 在多次尝试这种方法后,我得出的结论是它是矫枉过正的。我可以直接在 docker-compose.yml 中连接变量,效果很好。不仅如此,事实证明,拥有您尝试构建的那种 .env 文件确实很难调试。我的建议是不要对自己这样做 :) 但如果有人提出更好的主意,我会很高兴

标签: docker docker-compose


【解决方案1】:

创建一个类似这样的入口脚本:

#!/usr/bin/env bash
set -e

# Run a substitution because docker don't support nesting variables
export LETSENCRYPT_HOST=$(echo ${LETSENCRYPT_HOST} | envsubst)
export LETSENCRYPT_EMAIL=$(echo ${LETSENCRYPT_EMAIL} | envsubst)

exec "$@"

【讨论】:

    猜你喜欢
    • 2018-02-11
    • 1970-01-01
    • 2020-06-09
    • 2015-05-29
    • 2017-06-23
    • 2017-06-12
    • 2015-06-17
    • 1970-01-01
    相关资源
    最近更新 更多