【问题标题】:Environment variables with double asterisks in DockerfileDockerfile 中带双星号的环境变量
【发布时间】:2015-06-25 10:37:51
【问题描述】:

我注意到在某些 Dockerfile 中,环境变量是使用特定表达式指定的,这些表达式执行某种变量替换,例如:

ENV PASSWORD **Random**
ENV NAME **False**

我在 Docker 官方文档中找不到对这些表达式的任何引用。

在哪里可以找到可在 Dockerfile 中使用的可能表达式列表以及它们的含义?

【问题讨论】:

标签: docker environment-variables dockerfile


【解决方案1】:

将这些变量用作模板变量是非官方约定。它们将在运行时被替换。

或者您可以使用docker run-e 开关替换它们。

例如:

ENV MYSQL_USER admin
ENV MYSQL_PASS **Random**

# Replication ENV
ENV REPLICATION_MASTER **False**
ENV REPLICATION_SLAVE **False**

如果您查看启动脚本,您可以看到以下内容:

if [ "$MYSQL_PASS" = "**Random**" ]; then
    unset MYSQL_PASS
fi

PASS=${MYSQL_PASS:-$(pwgen -s 12 1)}

如果变量值为**Random**,我们将其替换为随机生成的密码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多