我的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>
问题
如何在docker run
中使用带有-e
标记的setenv.sh
传递的参数?
答案 0 :(得分:0)
您可以通过$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
无需再次export
他们。环境变量将可用于该程序。
如果脚本中有特殊逻辑来生成新逻辑,那么执行以下操作:
# some logic
NEW_ENV_VARIABLE = "blablabla $FIRST_ARG"
exec NEW_ENV_VARIABLE=$NEW_ENV_VARIABLE MY_PROGRAM
答案 1 :(得分:0)
您可以像使用任何其他环境变量一样访问它们。也就是说,在你尝试使用它们之前,我会确保它们存在并指定一个合理的默认值,如果它们没有。
if [ -z "$ARG_1" ]; then
export ARG_1=false
fi