Dockerfile中带双星号的环境变量
Environment variables with double asterisks in Dockerfile
我注意到在某些 Docker 文件中,环境变量是使用特定表达式指定的,这些表达式执行某种变量替换,例如:
ENV PASSWORD **Random**
ENV NAME **False**
我在 Docker 官方文档中找不到对这些表达式的任何引用。
在哪里可以找到可以在 Docker 文件中使用的可能表达式的列表,它们的含义是什么?
将这些变量用作模板变量是非官方约定。它们将在 运行 后被替换。
或者您可以使用 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**
让我们用随机生成的密码替换它。
我注意到在某些 Docker 文件中,环境变量是使用特定表达式指定的,这些表达式执行某种变量替换,例如:
ENV PASSWORD **Random**
ENV NAME **False**
我在 Docker 官方文档中找不到对这些表达式的任何引用。
在哪里可以找到可以在 Docker 文件中使用的可能表达式的列表,它们的含义是什么?
将这些变量用作模板变量是非官方约定。它们将在 运行 后被替换。
或者您可以使用 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**
让我们用随机生成的密码替换它。