【问题标题】:Deploy to Tomcat using Jenkins Deploy plugin without deleting context xml file使用 Jenkins Deploy 插件部署到 Tomcat 而不删除上下文 xml 文件
【发布时间】:2018-06-19 15:25:07
【问题描述】:

我正在使用 Jenkins Deploy to container 插件将我的项目部署到本地 tomcat。根据 Jenkins 控制台输出,插件重新部署、取消部署,然后作为其流程的一部分进行部署。在取消部署期间,tomcat 删除 $CATALINA_BASE/conf/[enginename]/[hostname]/[myprojectname].xml 上下文文件(又名 $CATALINA_BASE/conf/Catalina/localhost/[myprojectname].xml),原因描述为here

据我所知,该问题的答案在使用部署插件时不适用。

我正在使用此文件来配置资源并将其放入 /META-INF/context.xml 是不可行的,因为我需要能够部署到不同的上下文。

我尝试将文件设置为只读,这会导致 Jenkins 进程失败,因为它无法删除该文件。在 server.xml 中将 autoDeployment 设置为 false 也无济于事。

这个问题与this one 不同,因为在他的情况下,文件被重命名,而我的被删除。

如何阻止插件删除上下文文件?如果我不能,可以使用什么替代方案?

【问题讨论】:

    标签: java tomcat jenkins deployment


    【解决方案1】:

    我一直在我的 jenkins 管道作业中使用 curl 语句来退出一段时间,因为我们的 prod 环境中有负载均衡器,因此我们需要多次启动停止,这不受 Deploy 插件的支持。因此,我们改为使用 curl 语句进行 tomcat 部署。你可以试试看:

    curl --upload-file <file_path> -u <username>:<password>  "http://<URL>:<port>/manager/text/deploy?path=/<context>&update=true"
    

    这里的用户名和密码是tomcat脚本管理器的凭据。 update = true 负责重新部署。我不认为它会删除 context.xml

    【讨论】:

    • 这是一个不错的选择。谢谢。
    猜你喜欢
    • 2011-01-21
    • 2021-06-01
    • 2016-09-19
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多