将Codebuild项目部署到4个ECS容器中:AWS ECS容器****不存在

时间:2019-04-30 04:32:40

标签: amazon-cloudformation

我为单个ecs服务运行了管道,现在我必须部署到4个ecs服务中。我能够成功创建映像并将其推送到存储库中,但是问题出在部署中。

我已将任务定义重命名为与imagedefinition.json文件相同。

但是,仍然出现错误:

  

无效的操作配置AWS ECS容器*****不存在

是否可以一次部署4个容器?<​​/ p>

phases:
  install:
    commands:
      - echo "Install Scala ***********"
  pre_build:
    commands:
      - echo "Region(${AWS_REGION}) - ENV(${ENV}) - REPO(${REPO})"
      - VERSION=`date +%Y.%m.%d`-`echo ${CODEBUILD_RESOLVED_SOURCE_VERSION} | cut -c1-10`
      - echo "Build Version ${VERSION}"
      - echo "Logging in to Amazon ECR (${AWS_REGION})"
      - eval $(aws ecr get-login --no-include-email --region ${AWS_REGION})
  build:
    commands:
      - echo "Building"
      - sbt -no-colors docker:publishLocal
  post_build:
    commands:
      - echo 
      - docker tag 
      - docker push  repo 1
      - echo 
      - docker tag 
      - docker push  repo 2
      - echo 
      - docker tag 
      - docker push  repo 3
      - echo 
      - docker tag 
      - docker push  repo 4
      - printf '[
        {"name":"%s","imageUri":"%s"},{"name":"%s","imageUri":"%s"},{"name":"%s","imageUri":"%s"},
        {"name":"%s","imageUri":"%s"},{"name":"%s","imageUri":"%s"},{"name":"%s","imageUri":"%s"}
        ]'
        repo 1,
        repo 2,
        repo 3,
        repo 4,

        > imagedefinitions.json

artifacts:
  files: imagedefinitions.json

出于安全原因必须删除代码

1 个答案:

答案 0 :(得分:0)

问题是当我部署到ecs中时,它会查找ecs服务中图像definition.json文件中的所有容器名称,每个服务仅运行一个容器,我们不能使用相同的imagedefinition.json文件所有存储库,我们都将其分离并压缩,然后使用lambda函数调用它