入口点脚本变量

ENTRYPOINT Script Variables

我正在考虑在 运行 时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行 docker 化。在我的 ENTRYPOINT 脚本中,我定义了一些逻辑来创建一个 database.php 文件,其中将包含数据库用户名和密码。我想要 运行 类似于以下的东西。如何将 DB_USERNAMEDB_PASSWORD 定义为 运行 时间读取的值?

docker run -d --name some-app -e DB_USERNAME=secret_username -e DB_PASSWORD=securepassword

技巧 是确保您使用(最好)ENTRYPOINT:

shell form
FROM busybox

ENTRYPOINT echo "Hello ${DOG}"

然后:

docker build --rm --file="Dockerfile" --tag58944222:latest .
docker run --interactive --tty --env=DOG=Freddie  58944222:latest

Returns:

Hello Freddie

已更新

不清楚为什么这被否决了。

希望这会有所帮助:

#!/bin/sh

echo "Hello ${DOG}"

并且:

FROM busybox

ENV DOG=Henry

COPY ./test.sh .
RUN chmod +x ./test.sh

ENTRYPOINT ./test.sh

Returns 和之前一样的结果。将 ENV Dog=Henry 添加到 Dockerfile 用于提供默认值:

docker run --interactive --tty 58944222:latest
Hello Henry
docker run --interactive --tty --env=DOG=Freddie 58944222:latest
Hello Freddie