tomcat - docker tomcat重新部署应用程序

标签 tomcat jenkins docker groovy dsl

我在 jenkins docker 容器中有一个部署作业,用于在 docker tomcat 容器中部署应用程序,该容器在 jenkins 容器端口 8080 内的端口:8383 中运行。

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

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

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

如何使用 shell 脚本实现此目的?

最佳答案

首先,使用名称启动您的容器(使用 --name 标志)。这将允许您在以后想要重新部署它时轻松找到该容器:

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

使用名称,您可以检查容器是否已经存在,如果存在则停止并删除它(shell 脚本不在我的脑海中,可能有更好的方法来构建它):

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

之后,像以前一样使用新图像重新创建容器。

关于tomcat - docker tomcat重新部署应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512775/

相关文章:

jsp - 如何处理先前由servlet 转发的页面上的请求?

java - 我该如何解决这个问题---> 下面我的代码中的错误 HTTP 状态 404

具有自定义端口的服务器上的 Jenkins 奴隶

docker - 如何在 docker swarm 模式下将发布的端口绑定(bind)到特定的 eth[x]

mysql - 如何在成功等待脚本后启动 docker 容器

docker - Nextcloud 在 traefik 后面的 docker 中 unraid

java - Tomcat - CATALINA_BASE 和 CATALINA_HOME 变量

tomcat - 增加tomcat保持事件超时

.net - 为什么我的单元测试可以在 Visual Studio 2010 中运行,而不能在 Jenkins 中运行?

Jenkins Post 构建部署