入口点脚本变量
ENTRYPOINT Script Variables
我正在考虑在 运行 时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行 docker 化。在我的 ENTRYPOINT 脚本中,我定义了一些逻辑来创建一个 database.php 文件,其中将包含数据库用户名和密码。我想要 运行 类似于以下的东西。如何将 DB_USERNAME
和 DB_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
我正在考虑在 运行 时将变量分配给入口点脚本。我正在对我们的一个内部应用程序进行 docker 化。在我的 ENTRYPOINT 脚本中,我定义了一些逻辑来创建一个 database.php 文件,其中将包含数据库用户名和密码。我想要 运行 类似于以下的东西。如何将 DB_USERNAME
和 DB_PASSWORD
定义为 运行 时间读取的值?
docker run -d --name some-app -e DB_USERNAME=secret_username -e DB_PASSWORD=securepassword
技巧 是确保您使用(最好)ENTRYPOINT
:
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