Deployment 使用pm2运行play scala应用程序
我们一直在UNIX服务器上部署应用程序,只需运行可执行文件,比如Deployment 使用pm2运行play scala应用程序,deployment,jar,playframework,pm2,Deployment,Jar,Playframework,Pm2,我们一直在UNIX服务器上部署应用程序,只需运行可执行文件,比如 java_opts="-Xms128M -Xmx512M" ./bin/myProject -Dconfig.file=/path/to/my/confFile.conf -Dhttp.port=9022 & 而且效果很好。但是,对于我使用的NodeJS应用程序,我非常欣赏它的易用性和监控选项,因此我也希望将它用于其他应用程序 声称可以运行JAR。关于如何调整conf(见下文)以使其与我的Play/scala应用程序配合
java_opts="-Xms128M -Xmx512M" ./bin/myProject -Dconfig.file=/path/to/my/confFile.conf -Dhttp.port=9022 &
而且效果很好。但是,对于我使用的NodeJS应用程序,我非常欣赏它的易用性和监控选项,因此我也希望将它用于其他应用程序
声称可以运行JAR。关于如何调整conf(见下文)以使其与我的Play/scala应用程序配合使用,以及如果可能的话,有什么想法吗
使用pm2运行Jar:
{
"apps": [{
"name": "JavaAgent",
"cwd": "/usr/bin",
"args": [
"-Xmx256m",
"-cp",
"/app/somedirectorywhereagentresides:/some/directory/where/your/classes/lives",
"your.main.class"
],
"env": {
"ANY_ENV_VARIABLE": "that you might need in your program"
},
"script": "java",
"node_args": [],
"log_date_format": "YYYY-MM-DD HH:mm Z",
"exec_interpreter": "none",
"exec_mode": "fork"
}
]
}
尝试将命令行args放在
的“args”下
将您的conf
和lib
目录放在类路径上。
Play的引导类是Play.core.server.NettyServer
这里是我的项目中的一个工作示例。首先,您需要使用命令“activator dist”准备项目。它生成独立版本并将其压缩到.ZIP文件
在项目目录中运行“activator dist”
如果命令完成成功-查看将位于的路径
.zip文件与您的项目一起使用
将文件从.zip解压缩到目录中(例如/var/www/yourproject)李>
创建yourapp.json文件并将以下代码放入该文件:
使用命令“pm2 start/path/to/json/file/yourapp.json”运行项目
就这些
{
"apps": [{
"name": "NameInPM2List",
"cwd": "/path/to/your/project",
"args": [
"-Duser.dir=/path/to/your/project",
"-Dhttp.address=127.0.0.1",
"-Dhttp.port=9000",
"-cp",
"/path/to/your/project/lib/*",
"play.core.server.ProdServerStart"
],
"script": "/usr/bin/java",
"node_args": [],
"log_date_format": "YYYY-MM-DD HH:mm Z",
"exec_interpreter": "none",
"exec_mode": "fork"
}
]
}