现在可以轻松地在 Elastic beanstalk 上部署 Play2 应用程序Docker容器 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker.html结合sbt 的实验性 docker 功能 http://www.scala-sbt.org/sbt-native-packager/DetailedTopics/docker.html.
In build.sbt
指定暴露的docker端口:
dockerExposedPorts in Docker := Seq(9000)
您应该自动执行以下步骤,但您可以手动尝试以测试其是否有效:
生成一个Dockerfile
对于该项目,运行以下命令:sbt docker:stage
。
前往./target/docker/
目录。
创建一个有弹性的豆茎Dockerrun.aws.json
文件包含以下内容:
{
"AWSEBDockerrunVersion": "1",
"Ports": [
{
"ContainerPort": "9000"
}
]
}
将该目录中的所有内容压缩到一个名为play2-test-docker.zip
。 zip 文件应包含以下文件:Dockerfile
, Dockerrun.aws.json
, and files/*
目录。
转到 aws beanstalk 控制台并使用 m3.medium 或具有足够内存供 jvm 运行的任何实例类型创建一个新应用程序。任何内存太小的实例都会导致 JVM 错误。
在预定义配置下拉列表中选择“Docker 容器”。
在应用程序选择屏幕中,选择“上传”并选择您之前创建的 zip 文件。启动应用程序,然后去泡茶。这可能需要很长时间。分钟。相同应用程序版本的后续部署应该会稍微快一些。
应用程序运行并在 aws 控制台中变为绿色后,单击应用程序的 url,您应该会看到应用程序的欢迎屏幕(或任何索引文件)。