Docker:基于环境变量编辑Docker-entrypoint.sh
我用entrypoint.sh创建了一个Docker映像Docker:基于环境变量编辑Docker-entrypoint.sh,docker,Docker,我用entrypoint.sh创建了一个Docker映像 #/垃圾箱/垃圾箱 set-e [...] ./app/脱水/脱水-c-t dns-01-k'/app/脱水/hook.sh'-x 这是Dockerfile的最后一部分 [...] ENTRYPOINT [ "docker-entrypoint.sh" ] 我用一只手启动容器 docker run-it--rm-v$(pwd)/data:/app/脱水--name cfhookbash sinerba/cfhook
#/垃圾箱/垃圾箱
set-e
[...]
./app/脱水/脱水-c-t dns-01-k'/app/脱水/hook.sh'-x
这是Dockerfile的最后一部分
[...]
ENTRYPOINT [ "docker-entrypoint.sh" ]
我用一只手启动容器
docker run-it--rm-v$(pwd)/data:/app/脱水--name cfhookbash sinerba/cfhookbash:latest
我想添加一个环境变量:
--env FORCE\u RENEW=true
因此,动态编辑我的入口点如下(伪代码)
如果$FORCE\u RENEW&&FORCE\u RENEW==TRUE,则
./app/脱水/脱水-c-t dns-01-k'/app/脱水/hook.sh'-x
其他的
./app/脱水/脱水-c-t dns-01-k'/app/脱水/hook.sh'
(因此,根据环境添加参数X或no)
有可能吗?在入口点shell脚本中,您可以在正常shell脚本语法中执行的任何操作都是合法的。我可以这样写:
更新选项=
如果[“$FORCE_RENEW”==TRUE];然后
更新选项=-x
fi
./app/脱水/脱水-c-t dns-01-k'/app/脱水/hook.sh'$RENEW\u OPT
如果您控制脱水应用程序,将其设置为直接理解$FORCE\u RENEW
环境变量将比此命令行选项更容易设置。其机制将是特定于语言的,但是docker run-e
设置了一个非常普通的环境变量
另一个选择是接受新技术。作为容器调用的“命令”部分传递的任何内容——docker run
命令中图像名称之后的任何内容——都将作为参数传递给entrypoint脚本,您可以使用它将任意选项传递给主程序
#entrypoint.sh
#--不专门检查环境变量
#--“$@”展开为任何其他参数
./app/determinated/determinated-c-tdns-01-k'/app/determinated/hook.sh'$@“
#在图像名称后传递附加选项
docker run-it--rm
Sinerba/cfhookbash:最新版本\
-x
谢谢。我使用您的第一个选项;)