ENTRYPOINT脚本变量

时间:2019-11-19 23:06:27

标签: docker dockerfile docker-entrypoint

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

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

1 个答案:

答案 0 :(得分:0)

技巧[em] 是为了确保您使用shell form(最好是ENTRYPOINT):

FROM busybox

ENTRYPOINT echo "Hello ${DOG}"

然后:

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

返回:

Hello Freddie

已更新

不清楚为什么要拒​​绝投票。

希望这会有所帮助:

#!/bin/sh

echo "Hello ${DOG}"

并且:

FROM busybox

ENV DOG=Henry

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

ENTRYPOINT ./test.sh

返回与以前相同的结果。将ENV Dog=Henry添加到Dockerfile可以提供默认值:

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