我正在寻找在运行时将变量分配给入口点脚本的方法。我正在为我们的内部应用程序之一进行docker化。在我的ENTRYPOINT脚本中,我定义了一些逻辑来创建一个database.php文件,其中将包含数据库用户名和密码。我想运行类似于以下内容的内容。如何将DB_USERNAME
和DB_PASSWORD
定义为在运行时读取的值?
docker run -d --name some-app -e DB_USERNAME=secret_username -e DB_PASSWORD=securepassword
答案 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