【问题标题】:AWS Elastic Beanstalk is ignoring my Dockerrun.aws.json fileAWS Elastic Beanstalk 忽略了我的 Dockerrun.aws.json 文件
【发布时间】:2017-11-18 06:25:56
【问题描述】:

我运行了几个步骤以达到我在 AWS ECR 中预先构建的 docker 映像的程度。当我使用该接口在 AWS 中创建 EB 堆栈并上传我的 Dockerrun.aws.json 文件时,它会成功创建堆栈。

现在我正在尝试通过命令行而不是界面创建堆栈,但我遇到了一个烦人的问题,我不确定如何解决。

运行以下命令时:

$ eb create

它没有使用Dockerrun.aws.json 提供它应该从中提取图像的位置,而是尝试构建 docker 图像...在我运行上述命令的文件夹中,我有以下文件:

  • Dockerfile
  • Dockerrun.aws.json
  • /src/(我的申请)
  • ebextensions

我的假设是,如果我有 Dockerrun.aws.json 它应该使用它并忽略 Dockerfile?

有什么线索吗?

如果提供Dockerrun.aws.jsonconfig.yaml 的内容有帮助,请告诉我

【问题讨论】:

    标签: docker amazon-elastic-beanstalk


    【解决方案1】:

    根据 Single Docker apps 上的 Elastic Beanstalk 文档,如果 CLI 在您的目录中找到 Dockerfile,它将使用该文件覆盖您的 Dockerrun.aws.json 文件中 Image 键下列出的任何内容。

    我尝试通过创建.ebignore 文件来解决此问题,并在部署中添加Dockerfile 以被eb cli 忽略

    //.ebignore
    Dockerfile
    

    【讨论】:

    • 这是我的问题,如果存在Dockerfile,文件Dockerrun.aws.json 将被eb create 忽略并且不会被压缩,因此您将收到错误ERROR: No ecs task definition (or empty definition file) found in environment
    【解决方案2】:

    我刚刚解决了一个多小时的类似问题。问题在于.elasticbeanstalk/config.yml 文件并且缺少

    deploy:
      artifact: Dockerrun.aws.json 
    

    里面。每次运行 eb init 时都会创建新的 config.yml,因此请记住添加工件行。

    【讨论】:

      猜你喜欢
      • 2017-02-01
      • 2022-07-23
      • 2018-06-04
      • 2018-05-16
      • 2016-05-12
      • 2020-06-26
      • 2020-09-02
      • 2015-02-24
      • 2015-03-07
      相关资源
      最近更新 更多