首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么AWS CodePipeline抱怨'Dockerfile‘和'Dockerrun.aws.json'?

为什么AWS CodePipeline抱怨'Dockerfile‘和'Dockerrun.aws.json'?
EN

Stack Overflow用户
提问于 2021-10-26 22:51:46
回答 1查看 470关注 0票数 1

我正在为我的应用程序创建一个CodePipeline,但是AWS ElasticBeanstalk的部署过程失败了,出现了以下错误:

实例部署:源包中缺少“Dockerfile”和“Dockerrun.aws.json”。至少包括其中一个。部署失败。

完整的消息错误是:

部署已经完成,但是有错误:在中止部署期间,一些实例可能已经部署了新的应用程序版本。要确保所有实例运行的版本相同,请重新部署适当的应用程序版本。部署应用程序失败。在实例id(s) 'i-0b8823de2e7376c81‘上执行命令失败。中止了这次行动。实例: i-0b8823de2e7376c81命令在实例中失败。返回代码:1输出:引擎执行遇到错误。实例部署失败。有关详细信息,请参阅“eb-engine.log. For”。实例部署:源包中缺少“Dockerfile”和“Dockerrun.aws.json”。至少包括其中一个。部署失败。

我的环境有3个容器,为了部署这个环境,我使用docker-compose-qa.yml文件,在AWS CodeBuild中,我将该文件定义为工件,如下所示:

代码语言:javascript
复制
artifacts:
  files:
    - 'docker-compose-qa.yml'

The docker-compose-qa.yml

代码语言:javascript
复制
version: '3.8'

services:

    sitr-api:
        image: ${{ secrets.SITR_API_QA_URI_DOCKER_IMG }}
        container_name: sitr-api-qa
        environment:
            - ASPNETCORE_ENVIRONMENT=QA
        ports:
            - "9901:80"
        volumes:
            - "./Host-Logs:/app/App_Data/Logs"

    sitr-app:
        image: ${{ secrets.SITR_APP_QA_URI_DOCKER_IMG }}
        container_name: sitr-app-qa
        ports:
            - "9902:80"
    
    sitr-nginx: 
        image: ${{ secrets.SITR_NGINX_QA_URI_DOCKER_IMG }}
        container_name: sitr-nginx-qa
        depends_on: 
          - sitr-app
          - sitr-api
        ports: 
          - "80:80"

eb-engine.log错误:

2021/10/26 22:07:27.977004在执行命令app- Docker特定构建应用程序时出错。停止运行命令。错误: Dockerfile和Dockerrun.aws.json都丢失,中止部署

2021/10/26 22:07:27.977008 INFO执行清理逻辑2021/10/26 22:07:27.977098 INFO CommandService响应:{“状态”:"api_version":"1.0",“结果”:[{“状态”:“失败”,“msg”:“引擎执行遇到错误”。),“返回代码”:1,“事件”:“事件”:“实例部署:'Dockerfile‘和'Dockerrun.aws.json’都丢失在源包中。”至少包括其中一个。部署失败。“,”时间戳“:1635286047,”严重性“:”错误“},{”msg“:”实例部署失败“。有关详细信息,请参阅‘eb-Engin.log’.“、”时间戳“:1635286047、”严重性“:”ERROR“}

我的CodeBuild刚刚构建了一个dotnet应用程序角折叠,并为应用程序和nginx构建了3码头容器

如果我手动运行我的docker-compose-qa.yml文件,然后在AWS中选择我的CodeBuild文件,那么发布就成功应用了。

我检查了AWS的S3桶,文件正在被压缩到一个文件夹中作为工件。

问题是:

为什么管道抱怨'Dockerfile''Dockerrun.aws.json'文件不存在?如何指定它来使用docker-compose-qa.yml文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 23:45:40

基于这些评论。

该问题是由错误的文件名引起的。它应该被称为docker-compose.yml,而不是docker-compose-qa.yml。重命名文件解决了问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69730812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档