Jenkins 从詹金斯的docker compose回来

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

我有Jboss复制的基本图像。Jboss由一个脚本启动,大约需要2分钟。
在我的
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它会在没有拖尾的情况下返回吗?