使用docker supervisor在容器启动后给出的变量启动后自动运行脚本?

时间:2016-06-04 17:10:15

标签: docker

所以,我有不同的图像运行不同的预配置的cms系统,我有启动脚本,将给定的端口映射到docker文件中定义的公开端口。

我现在的问题是我希望在容器启动后运行脚本。该脚本必须远程触发jenkins作业,该作业将某些软件包安装到我的容器中的cms,因此我需要将映射的端口传递给jenkins作业。

实现这一目标的最佳方法是什么?有没有办法将docker run命令(在我的情况下是-p设置)中给出的变量传递给supervisor脚本或我可以在dockerfile中定义的任何其他选项?

这里的基本想法是轻松与工作人员共享准备好的开发人员环境,因此他们不必自己安装所有软件,而是获得一个带有现成cms安装的容器,只需重新安装他们实际更改的包而不必首先安装3到10个软件包以实际看到任何东西。

1 个答案:

答案 0 :(得分:0)

在docker启动脚本中,为外部端口添加环境变量

-p $EXTPORT:$CMSPORT -e EXTPORT=$EXTPORT

然后,端口将在容器环境中以EXTPORT的形式提供。

$ docker run -e EXTPORT=4343 busybox sh -c 'echo $EXTPORT'
4343