2017-01-06 53 views
0

我有一个码头工人詹金斯容器中部署的工作在港口部署搬运工Tomcat容器中运行的应用:8383詹金斯集装箱港口内8080搬运工tomcat的重新部署应用程序

我能够部署应用程序成功并首次启动服务器。

但是,如果我想重新部署应用程序,则部署作业会因端口8383已分配而失败。

我想检查docker tomcat容器是否已经在运行,如果它正在运行,那么我需要停止tomcat容器,部署应用程序并重新启动它。

我该如何使用shell脚本实现这个功能?

+0

为什么不直接发出'docker stop docker-tomcat' shell命令? –

+0

如果shell命令失败,它将使jenkins中的作业失败。 –

+0

我试了一下,工作没有失败,但我在控制台中收到错误消息。它可能是一个快速的双赢解决方案。 @helmbert命令为我工作。 –

回答

0

首先,用名称启动容器(使用--name标志)。这将允许您轻松后来发现这个容器,当你要重新部署它:如果它不

docker run -d -it -p 8383:8080 --name your-application docker-tomcat 

使用的名称,你可以检查是否容器已经存在,然后停止并删除它(壳脚本是把我的头顶部,有可能是更好的方式来建立这个):

[ $(docker ps -aq -f name=your-application | wc -l) -gt 0 ] && \ 
    docker stop your-application && docker rm your-application 

之后,新的图像作为之前重新创建你的容器。

相关问题