所以,我有不同的图像运行不同的预配置的cms系统,我有启动脚本,将给定的端口映射到docker文件中定义的公开端口。
我现在的问题是我希望在容器启动后运行脚本。该脚本必须远程触发jenkins作业,该作业将某些软件包安装到我的容器中的cms,因此我需要将映射的端口传递给jenkins作业。
实现这一目标的最佳方法是什么?有没有办法将docker run命令(在我的情况下是-p设置)中给出的变量传递给supervisor脚本或我可以在dockerfile中定义的任何其他选项?
这里的基本想法是轻松与工作人员共享准备好的开发人员环境,因此他们不必自己安装所有软件,而是获得一个带有现成cms安装的容器,只需重新安装他们实际更改的包而不必首先安装3到10个软件包以实际看到任何东西。
答案 0 :(得分:0)
在docker启动脚本中,为外部端口添加环境变量
-p $EXTPORT:$CMSPORT -e EXTPORT=$EXTPORT
然后,端口将在容器环境中以EXTPORT
的形式提供。
$ docker run -e EXTPORT=4343 busybox sh -c 'echo $EXTPORT'
4343