Jenkins 从詹金斯的docker compose回来
我有Jboss复制的基本图像。Jboss由一个脚本启动,大约需要2分钟。Jenkins 从詹金斯的docker compose回来,jenkins,docker,docker-compose,Jenkins,Docker,Docker Compose,我有Jboss复制的基本图像。Jboss由一个脚本启动,大约需要2分钟。 在我的Dockerfile中,我创建了一个命令 CMD start_deploy.sh && tail -F server.log 我做一个tail来保持容器的活动状态,否则当脚本完成并且容器停止时“docker compose up”就会退出 问题是,当我通过Jenkins进行“docker compose up”时,由于tail的原因,构建没有完成,我无法启动下一个构建 如果我执行“docker co
在我的
Dockerfile
中,我创建了一个命令
CMD start_deploy.sh && tail -F server.log
我做一个tail来保持容器的活动状态,否则当脚本完成并且容器停止时“docker compose up
”就会退出
问题是,当我通过Jenkins进行“docker compose up
”时,由于tail的原因,构建没有完成,我无法启动下一个构建
如果我执行“docker compose up-d
”,那么下一个构建开始得太早,并开始对尚未启动的容器执行测试
当服务器完全启动时,是否有一种方法可以从docker compose up返回。只要您有链接命令或管道命令(
|
),就更容易:
- 更容易地将它们包装在脚本中,并在
指令中使用该脚本:CMD
CMD myscript
- 或者将它们包装在
命令中:sh-c
sh -c 'start_deploy.sh && tail -F server.log'
入口点。
默认的ENTRYPOINT
应该允许该CMD
工作)只要您有链式命令或管道式命令(|
),就更容易:
- 更容易地将它们包装在脚本中,并在
CMD
指令中使用该脚本:
CMD myscript
- 或者将它们包装在
sh-c
命令中:
sh -c 'start_deploy.sh && tail -F server.log'
(但最后一个取决于图像的入口点。
默认的ENTRYPOINT
应该允许这个CMD
工作)你的意思是,如果我将它们包装在单独的脚本中并在CMD中使用该脚本,那么当两个脚本都执行时,我就可以从docker compose up返回了吗?@ManishKumarThakur是的,这是个想法。我会尝试一下。我会让你知道的。谢谢,那没用。结果是一样的。我创建了一个脚本startConatiner.sh&将这两个命令放在其中。docker compose开始拖尾,但没有返回。@ManishKumarThakur它会返回而没有拖尾吗?你的意思是如果我将它们包装在单独的脚本中并在CMD中使用该脚本,那么当两个脚本都执行时,我就可以从docker compose返回了吗?@ManishKumarThakur是的,这是一个想法。我会尝试一下。我会让你知道的。谢谢,那没用。结果是一样的。我创建了一个脚本startConatiner.sh&将这两个命令放在其中。docker compose开始拖尾,但没有返回。@ManishKumarThakur它会在没有拖尾的情况下返回吗?