Docker 入口点脚本变量

Docker 入口点脚本变量,docker,dockerfile,docker-entrypoint,Docker,Dockerfile,Docker Entrypoint,我正在考虑在运行时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行归档。在我的ENTRYPOINT脚本中,我定义了一些逻辑来创建一个database.php文件,其中包括DB用户名和密码。我想运行类似于下面的程序。如何将DB\u USERNAME和DB\u PASSWORD定义为运行时读取的值 docker run-d——命名一些应用程序-e DB\u USERNAME=secret\u USERNAME-e DB\u PASSWORD=securepassword诀窍是确保使用(最好

我正在考虑在运行时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行归档。在我的ENTRYPOINT脚本中,我定义了一些逻辑来创建一个database.php文件,其中包括DB用户名和密码。我想运行类似于下面的程序。如何将
DB\u USERNAME
DB\u PASSWORD
定义为运行时读取的值

docker run-d——命名一些应用程序-e DB\u USERNAME=secret\u USERNAME-e DB\u PASSWORD=securepassword
诀窍是确保使用(最好)入口点的

FROM busybox

ENTRYPOINT echo "Hello ${DOG}"
然后:

docker build--rm--file=“Dockerfile”--tag58944222:最新版本。
docker run--interactive--tty--env=DOG=Freddie 58944222:最新版本
返回:

Hello Freddie
更新 不清楚为什么这项议案被否决

希望这将有助于:

#/垃圾箱/垃圾箱
回声“你好${DOG}”
以及:

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

docker run--交互式--tty 58944222:最新版本
你好,亨利
docker run--interactive--tty--env=DOG=Freddie 58944222:最新版本
你好,弗雷迪

docker run
命令可能会执行您想要的操作(请记住将所有docker选项放在图像名称之前);您是否遇到了特定的问题?对于您的第二个响应(test.sh示例),我们是否能够使用CMD定义默认值?本质上,我想设置这些值,这样我就可以在不需要变量的情况下运行图像,然后在需要时指定。是的,只需将例如
ENV DOG=Henry
添加到Dockerfile中,作为默认值即可!
FROM busybox

ENV DOG=Henry

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

ENTRYPOINT ./test.sh