【问题标题】:How to pull a Docker image from DockerHub to Elastic Beanstalk?如何将 Docker 映像从 DockerHub 拉到 Elastic Beanstalk?
【发布时间】:2021-02-03 01:09:08
【问题描述】:

我想使用 GitHub Actions 为 Github 上的一个项目制作 CI/CD。用过这个教程:
https://www.blog.labouardy.com/elastic-beanstalk-docker-tips/
但我仍然不明白弹性beantalk 将如何从DockerHub 中提取docker 图像。 这应该怎么发生?
以及为什么我们需要一个 Dockerrun.aws.json 文件以及如何使用它?

【问题讨论】:

    标签: amazon-web-services docker amazon-elastic-beanstalk github-actions dockerhub


    【解决方案1】:

    可以采用不同的方法。博主选择使用Dockerrun.aws.json + Dockerfile + zipfile的方式。换句话说,每次 CircleCI 构建时,它都会上传一个包含 Dockerrun.aws.json 的 zip 文件(在这种情况下,实际上并不需要 Dockerfile,因为他正在远程构建图像以及应用程序的其余部分,因为他没有映射任何东西)。

    circleci执行以下步骤:

    • 构建映像
    • 推送图片
    • 将 zip 文件发送到 AWS Elastic Beanstalk

    AWS Elastic Beanstalk 将简单地遵循Dockerrun.aws.json 中的配置并使用标签${CIRCLE_SHA1} 进行更新。

    Dockerrun.aws.json 有必要吗?不,您也可以使用docker-compose.yml 文件。

    我建议你查看AWS documentation这个话题。

    编辑:恕我直言,最好使用docker-compose.yml,因为它允许在本地启动容器并在远程更新应用程序之前确保它们正常

    【讨论】:

    • 非常感谢您的回复。我还想问你一件事。如何检查 Elastic Beanstalk 是否在 json 文件之后进行了更新?我只是认为我的 Elastic Beanstalk 只是忽略了 json 文件,我只是通过 S3 将项目的 zip 复制到其中,而 DockerHUB 保持不变。
    • 作为测试,我将仅在 zip 文件中保留 Docker.aws.json 并查看它的行为方式。无论如何,您可以在 AWS 控制台中查看当前使用的版本。
    • 我做到了。只有 dockerrun.aws.json 文件在 zip -> Elastic Beanstalk 中的“无法部署应用程序”...
    • 我找到了一个教程,只做了那里的,但我仍然有一个错误....(((youtube.com/…
    • 我尝试在 dockerrun.aws.json 中写入来自 DockerHub 的另一个镜像,例如 consol/tomcat-8.0 一切正常!但是,当我写一个拉到我的图像时,它给出了一个错误...错误:对实例 id(s) 'i-0dafdbbfc40f0edd2'​​ 的命令执行不成功。中止操作。 -> 未能部署应用程序。 -> 在中止部署期间,某些实例可能已经部署了新的应用程序版本。为确保所有实例都运行相同的版本,请重新部署相应的应用程序版本。
    【解决方案2】:

    就像一位会员所说,您可以使用AWS documentation 完成步骤。

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2017-09-22
      • 2014-12-16
      • 2020-06-23
      • 2015-10-02
      • 2016-06-20
      • 2020-07-03
      • 2020-06-17
      • 2017-10-21
      相关资源
      最近更新 更多