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
 结果报错:

 


weblogic-buildpack离线包制作及排错_第1张图片
 

发现是在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

 

发现这个有用的日志



 

继续看:


weblogic-buildpack离线包制作及排错_第2张图片
 

发现是metaspace参数不支持,原因找到,我下载的是jdk1.7,这个jdk是不支持这个内存参数的,于是下载jdk1.8,重新制作离线包。

 

 

你可能感兴趣的:(weblogic,CloudFoundry,buildpack,dea,warden)