我正在尝试将具有node-jdbc模块的Node.js应用程序推送到Bluemix。该node-jdbc模块需要安装JDK。有没有办法推送Node.js应用程序并在同一运行时安装JDK?

最佳答案

这是我用来部署具有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)现在,为了使buildpack能够检测到Java,我必须设置以下环境变量:

cf set-env your-app-name JAVA_HOME /tmp/staged/app/jdk1.7.0_79


部署后,应用程序目录实际上位于/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 restagecf push以重新部署应用程序。

09-30 16:20
查看更多