nihaogirl 发表于 2017-2-15 10:28:05

weblogic-buildpack离线包制作及排错

离线包制作
  从github上获取源码
  $ git clone https://github.com/pivotal-cf/weblogic-buildpack

weblogic的包制作比较特别,需要自己下载oracle的jdk,和weblogic。到官方网站下载后,放到一个目录:fileserver,目录结构:
fileserver/
├── jdk
│   ├── index.yml
│   ├── jdk-8u40-ea-bin-b05-linux-x64-10_sep_2014.tar.gz
└── wls
├── index.yml
└── wls1213_dev.zip
 
并把这个目录用HTTP暴露出来,最简单的方法在该目录运行  $ python -m SimpleHTTPServer
  创建文件:fileserver/wls/index.yml
  内容:

---
1.8.0_40: http://10.111.131.228:8000/fileserver/jdk/jdk-8u40-ea-bin-b05-linux-x64-10_sep_2014.tar.gz
  创建文件:fileserver/jdk/index.yml
  内容:

---
12.1.13: "http://10.111.131.228:8000/fileserver/wls/wls1213_dev.zip"

  修改
  weblogic-buildpack/config/oracle_jre.yml

repository_root: "http://10.111.131.228:8000/fileserver/jdk"
  weblogic-buildpack/config/weblogic.yml

version: 12.1.+
repository_root: "http://localhost:8000/fileserver/wls"
且要修改配置文件:
  weblogic-buildpack/config/oracle_jre.yml

version: 1.8.0_+
#detect_compiled: enabled
#8: 1.8.0_+
#7: 1.7.0_+
#6: 1.6.0_+

这可能是个bug,因为原有的格式,解析不了。
  在weblogic-buildpack目录执行

$ bundle install
$ bundle exec rake package OFFLINE=true
  在CF创建buildpack

$ cf create-buildpack weblogic build/weblogic-buildpack-offline-4a608a3.zip 1


排错
  创建一个helloworld的应用

$ cf push hello-weblogic -b weblogic -p ~/apps/helloworld.war
 结果报错:  

 
  发现是在stage阶段执行buildpack的release报错,但无具体错误信息,
  由于这个阶段是在warden容器中进行的,且失败后,容器会销毁。
  登录到DEA容器注释代码中的destroy
  代码/var/vcap/packages/dea_next/lib/dea/task.rb,在方法:promise_destroy和destroy直接返回return
  重启dea_next

$ monit restart dea_next
   重新部署

$ cf d hello-weblogic
$ cf push hello-weblogic -b weblogic -p ~/apps/helloworld.war
   进入容器

$ /var/vcap/packages/warden/warden/bin/warden --socket=/var/vcap/data/warden/warden.sock
  当失败时检查日志,这时候容器还在,不会别销毁
  查看容器

warden> list
  发现这个有用的日志
  

 
  继续看:
  

 
  发现是metaspace参数不支持,原因找到,我下载的是jdk1.7,这个jdk是不支持这个内存参数的,于是下载jdk1.8,重新制作离线包。
页: [1]
查看完整版本: weblogic-buildpack离线包制作及排错