如何通过Jenkins将Nexus的.war包部署到同主机WebLogic容器并配置部署插件参数
Docker化部署场景下WebLogic Jenkins插件配置填写指引
当前环境与已完成进展
- Jenkins、Nexus均通过docker-compose编排运行,独立部署的WebLogic 12.2.1.4容器与上述服务处于同一台主机
- 已验证流程:可通过
wget命令从Nexus拉取.war包,文件可正常存入Jenkins工作空间目录 - 当前待解决问题:WebLogic Deployment插件配置页的两个必填字段无明确填写思路,无法完成后续部署链路打通
两个配置字段的具体填写规则
字段1:WebLogic 管理服务访问地址
- 别直接填WebLogic容器内部的docker网段IP,Jenkins和WebLogic是两个独立启动的容器,默认跨容器网段是不通的
- 正确填法:
http://<主机内网固定IP>:7001- 7001是WebLogic默认的管理端口,先确认WebLogic启动时用
-p 7001:7001把端口映射到了主机,要是改了管理端口就换成实际的映射端口 - 千万别填
localhost,容器里的localhost指的是Jenkins自己的容器,不是跑所有docker服务的物理机 - 连通性验证:进Jenkins容器执行
curl http://<主机内网IP>:7001/console,能返回200就说明网络通了
- 7001是WebLogic默认的管理端口,先确认WebLogic启动时用
字段2:WebLogic 域路径
- 别直接抄WebLogic容器里的域目录路径(比如默认的
/u01/oracle/user_projects/domains/base_domain),Jenkins在自己的独立容器里,根本读不到WebLogic容器内部的文件 - 适配当前docker环境的正确操作步骤:
- 先查WebLogic容器的域目录在主机上的实际路径:执行
docker inspect <WebLogic容器ID>查看挂载配置,找到域目录对应的主机侧绝对路径 - 修改Jenkins的docker-compose配置,把上述主机侧的WebLogic域目录,挂载到Jenkins容器里的相同绝对路径下,保证Jenkins进程对这个路径有读写权限
- 插件里的域路径字段,就填Jenkins容器内可以访问到的那个域目录绝对路径就行
- 先查WebLogic容器的域目录在主机上的实际路径:执行
- 常见坑:填完路径报“域目录找不到”的,优先进Jenkins容器检查是不是真的能通过填的路径读到域里的
config.xml配置文件,跳过挂载步骤直接抄容器路径百分百会报错
前置检查项
- 确认WebLogic的远程部署账号已开启T3协议远程连接权限,未限制仅本地控制台登录
- 确认防火墙规则已放通主机7001端口在Jenkins服务所在网段的访问权限
内容的提问来源于stack exchange,提问作者Anas Chtourou
相关产品推荐
相关产品推荐

