weblogic docker容器化之自动发布

本文记录了使用Docker将weblogic部署为容器的过程,重点在于如何实现自动项目发布。通过weblogic.WLST脚本和Python,实现了在weblogic启动时自动创建数据源和部署应用。容器启动脚本包括设置环境变量、建立数据源和部署应用的步骤。遇到的权限问题通过以root用户运行docker解决。
摘要由CSDN通过智能技术生成

因工作需要,需将weblogic制作为docker镜像,现将过程记录以便查阅。

weblogic镜像制作,官方从12.1.3后,提供官方脚本用于制作镜像包括weblogic静默安装和weblogic静默离线创建域。https://github.com/oracle/docker-images中提供各种官版镜像制作脚本。

没有官方脚本的版本,可以参考官方脚本和百度“weblogic静默安装”制作镜像。

此次需求完成重点不是weblogic镜像制作,而是镜像需要满足自动项目发布的需求。

因为web项目从weblogic jndi获取数据源,weblogic自动发布需满足自动创建数据源,自动发布指定目录下的web项目。问题之处,认为weblogic可以通过更改config.xml文件实现部署和数据源建立,几次折腾回头看修改xml配置文件的方式自己不能实现(估计就不能实现,很多配置项都是weblogic启动后才会生成)。所以,直接给出结果weblogic的自动发布通过weblogic.WLST提供的脚本方法和python脚本实现,weblogic.WLST支持python。

WLST官方资料:

http://www.beansoft.biz/weblogic/docs100/config_scripting/index.html

welbogic创建数据源可以在脱机(weblogic未启动)情况下创建,而部署只能在weblogic启动的情况下才能部署。所以脚本分为三部分:1、脱机建立数据源2、启动weblogic3、部署指定应用。

1、首先是建立docker容器启动时执行的sh脚本

#!/bin/bash

# WARNING: This file is created by the Configuration Wizard.
# Any changes to this script may be lost when adding extensions to this configuration.
echo "auto deploy start..."
source /u01/oracle/wlserver/server/bin/setWLSEnv.sh >/u01/initlog
java weblogic.WLST /u01/oracle/user_projects/domains/base_domain/bin/createWeblogicDataSource.py >>/u01/initlog &
echo "auto deploy start create data source end..."
wait
java weblogic.WLST /u01/oracle/user_projects/domains/base_domain/bin/deployWeblogicWebapp.py >>/u01/initlog &

DOMAIN_HOME="/u01/oracle/user_projects/domains/base_domain"

${DOMAIN_HOME}/bin/startWebLogic.sh $*
脚本解释:

1、加载WLST需要的环境变量(weblogic安装目录下)

2、启动数据源建立py脚本(sh后台执行)

##==============================================================
## create by 2016.10.13
## weblogic自动部署脚本 
## 实现从环境变量中获取数据库连接信息和项目部署路径 
## 新建数据源和部署项目
##===========================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值