Moh*_*que 11 amazon-web-services playframework-2.0 amazon-elastic-beanstalk
我在这里发现了碎片化的说明以及其他一些关于在亚马逊ec2上部署Play2应用程序的地方.但是没有找到使用Beanstalk部署的任何简洁方法.
Play是一个不错的框架,AWS beanstalk是最受欢迎的服务之一,那么为什么没有正式的指令呢?
有没有人找到更好的解决方案?
bob*_*obc 13
现在,使用Docker Containers结合sbt的实验性 docker功能,可以轻松地在弹性beanstalk上部署Play2应用程序.
在build.sbt指定公开的docker端口:
dockerExposedPorts in Docker := Seq(9000)
Run Code Online (Sandbox Code Playgroud)
您应该自动执行以下步骤,但您可以手动尝试以测试它是否有效:
Dockerfile通过运行命令为项目生成:sbt docker:stage.转到./target/docker/目录.Dockerrun.aws.json使用以下内容创建弹性beanstalk 文件:
{
"AWSEBDockerrunVersion": "1",
"Ports": [
{
"ContainerPort": "9000"
}
]
}
Run Code Online (Sandbox Code Playgroud)
压缩该目录中的所有内容,让我们说出一个名为的文件play2-test-docker.zip.zip文件应包含的文件:Dockerfile,Dockerrun.aws.json,和files/*目录.
转到aws beanstalk控制台并使用m3.medium或任何具有足够内存的实例类型创建一个新应用程序,以便运行jvm.任何内存太少的实例都会导致JVM错误.
在"预定义配置"下拉列表中选择"Docker Container".
在应用程序选择屏幕中,选择"上载"并选择您之前创建的zip文件.启动应用程序,然后冲泡一些茶.这可能需要很长时间.分钟.相同应用程序版本的后续部署应该稍快一些.
一旦应用程序在aws控制台中运行并显示为绿色,请单击应用程序的URL,您应该看到应用程序的欢迎屏幕(或任何索引文件).
Ray*_*d26 11
这是我的解决方案,不需要任何其他服务/容器,如Docker或Jenkins.
dist在Play应用程序目录的根目录中创建一个文件夹.创建Procfile包含以下内容的dist文件并将其放在文件夹中(EB需要端口5000):
web: ./bin/YOUR_APP_FILE_NAME -Dhttp.port=5000 -Dconfig.file=conf/application.conf
YOUR_APP_FILE_NAME是bin目录中可执行文件的名称,该名称位于.zip创建的内部activator dist.
运行后activator dist,您只需将创建的zip文件上传到Elastic Beanstalk,它就会自动部署该应用程序.您还可以将任何.ebextension文件夹和配置文件放入distElastic Beanstalk配置所需的文件夹中.防爆.我有dist/.ebextensions/nginx/conf.d/proxy.confNGINX反向代理设置或dist/.ebextensions/env.config环境变量.
Dav*_*ple 10
编辑2016:现在有一种更好的方法可以使用新的Java SE容器将Playframework应用程序部署到ElasticBeanstalk .
这篇文章将引导您逐步使用Jenkins构建和部署项目:https: //www.davemaple.com/articles/deploy-playframework-elastic-beanstalk-jenkins/
您可以使用我在此处更新的自定义AMI:https: //github.com/davemaple/playframework-nginx-elastic-beanstalk
这些运行Nginx + Playframework并支持使用"activator dist"创建的标准zip文件.
Beanstalk 仅支持 WAR 部署,Play 并不正式支持 WAR 部署。如果您想使用 EC2,那么您应该只创建一个 EC2 实例并按照部署说明进行操作:http://www.playframework.com/documentation/2.2.x/ProductionDist
| 归档时间: |
|
| 查看次数: |
7420 次 |
| 最近记录: |