我的 tomcat docker 容器中有一个名为 setenv.sh
的文件。我从我的 DOCKERFILE
中使用它,如下所示:
COPY setenv.sh /tomcat/bin/setenv.sh
在这个文件中,我想使用一些可以在我启动这个 docker 容器时传递的命令行参数。例如,如果我像这样运行这个容器:
docker run -d --name somename -e FIRST_ARG=foo SECOND_ARG=bar
然后,在我的 setenv.sh
中,我想像这样使用它们:
export FIRST_ARG = <value of first_arg passed from command line>
export SECOND_ARG = <value of second_arg passed from command line>
问题
如何使用 setenv.sh
中的 -e
标志传递给 docker run
的参数?
最佳答案
您可以通过 $FIRST_ARG
直接访问它们
#!/usr/bin/env sh
# To access first param end etc...
echo "My constant $FIRST_ARG"
echo "My constant $SECOND_ARG"
exec MY_GPOGRAM
无需再次导出
它们。环境变量将对程序可用。
如果你的脚本中有特殊的逻辑来生成新的逻辑,那么做这样的事情:
# some logic
NEW_ENV_VARIABLE = "blablabla $FIRST_ARG"
exec NEW_ENV_VARIABLE=$NEW_ENV_VARIABLE MY_PROGRAM
关于tomcat - 在 entrypoint.sh 以外的文件中使用命令行参数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041593/