我有几个 Scala 应用程序,我想在 Amazon 的 Elastic Beanstalk 上的 Docker 多容器环境中部署它们。
整个过程似乎比我预期的要复杂一些。所以我真的很期待听到一些关于最佳实践和其他方法的反馈,以改进我的整个流程并能够“自动化”一些步骤(如果可能的话)。
这是我目前的流程:
- 为了生成我的项目的工件,我使用了sbt-docker插件。此插件在 [app-route]/target/docker 下生成项目工件(jar 和 Dockerfile)。
- 我将这些工件(jar 和 Dockerfile)上传到 git 存储库中(目前“手动”执行此操作)。
- 由于Amazon 的 Elastic Beanstalk 需要 Docker 多容器,我需要一个在线存储库来“托管”图像:可以是Docker-Hub或Quay.io。要么要求我有一个 git 存储库,它可以在其中找到能够生成项目图像的工件。
- 在 Elastic Beanstalk 中创建了多容器环境后,我继续上传Dockerrun.aws.json文件,如亚马逊文档中所述,以及包含端口设置的 .ebextensions/elb-listeners.config 文件(因为我是运行多个应用程序)
- 魔法!亚马逊生成我的环境。我所有应用程序的相同 url,不同端口(如第 4 步中的配置文件中指定的那样) 。
我很想找到一种自动化步骤 2的方法。 因为这要求我每个应用程序都有一个额外的回购。我将我的应用程序托管在一个 git repo 中,并且每个我都有一个“额外”的 repo,我在其中托管在step 1中生成的工件,以便能够执行step 3。