我试图将带有node-jdbc模块的Node.js应用程序推送到Bluemix。此node-jdbc模块需要安装JDK。有没有办法推送Node.js应用程序并在同一个运行时安装JDK?
答案 0 :(得分:1)
这是我用于部署具有node-jdbc
依赖关系的Bluemix Node.js应用程序的解决方案:
1)下载适用于Linux x64的JDK软件包(与Cloud Foundry堆栈兼容)
2)在根的项目目录中安装/解压缩JDK包,我的目录是这样的(jdk1.7.0_79
是我添加的新目录):
-rwxr-xr-x@ 1 adasilva staff 436 Jan 24 18:21 README.md
drwxr-xr-x 15 adasilva staff 510 Apr 10 2015 jdk1.7.0_79
-rw-r--r--@ 1 adasilva staff 72 Jan 27 15:27 manifest.yml
-rwxr-xr-x@ 1 adasilva staff 327 Jan 27 21:21 package.json
-rwxr-xr-x@ 1 adasilva staff 4412 Jan 24 18:21 server.js
3)现在,对于要检测Java的buildpack,我必须设置以下环境变量:
cf set-env your-app-name JAVA_HOME /tmp/staged/app/jdk1.7.0_79
部署后,app目录实际上位于/home/vcap/app
,但编译在分段时完成,因此目录不同
4)对于运行时,应用程序需要Java库,因此我还需要设置另一个环境变量:
cf set-env your-app-name LD_LIBRARY_PATH /home/vcap/app/jdk1.7.0_79/jre/lib/amd64:/home/vcap/app/jdk1.7.0_79/jre/lib/amd64/server
请注意,现在我使用/home/vcap/app
,因为运行时将在部署应用程序之后。
5)再次运行cf restage
和cf push
以重新部署应用程序。