将Docker映像部署到AWS Elastic beantalk

时间:2020-08-28 01:16:21

标签: amazon-web-services spring-boot docker amazon-elastic-beanstalk

我在此tutorial之后创建了一个Spring Boot应用程序。在学习完本教程之后,我设法使用以下命令对我的应用程序进行了Docker化:

docker-compose up 

我的docker-compose.yml文件:

version: '3'
services:

  app:
    build: .
    volumes:
    - .:/app
    - ~/.m2:/root/.m2
    working_dir: /app
    ports:
    - 8080:8080
    command: mvn clean spring-boot:run

之后我检查docker映像时,会看到该应用程序的新映像。现在,我想将此应用程序部署到AWS Elastic beantalk。使用Docker平台创建环境时,需要为应用程序代码上传什么?如何将Docker映像上传到AWS?我找不到关于如何将dockerized应用程序/图像部署到像这样的aws的很好的教程。我是Docker的新手,所以我们将不胜感激!

1 个答案:

答案 0 :(得分:2)

更新2020年10月

现在,EB正式支持Docker-compose

下面的原始答案

EB 不支持docker-compose 。要制作容器(是单容器还是多容器设置?),必须使用singlemulti-container EB平台。

在两种情况下,您都必须将docker-compose.yml转换为Dockerrun.aws.json。该文件具有不同的格式,具体取决于您使用的是单个还是多个容器设置。

如何将docker映像上传到AWS?

如果使用单个EB设置,您只需将Dockerfile提供给EB,它将为您处理所有事情。对于多容器EB,您可以将图像存储在dockerhub之类的公共仓库中,也可以存储在ECR之类的私人仓库中。

要将docker-compose.yml文件转换为Dockerrun.aws.json,可以尝试使用container-transform工具。尽管您很有可能需要手动对生成的文件进行进一步的调整,这可能会有所帮助。