AWS代码构建未在构建后运行terraform

AWS代码构建未在构建后运行terraform,terraform,aws-codebuild,Terraform,Aws Codebuild,我正在尝试在aws codebuild上为我的项目设置构建,我正在使用terraform来设置所有实例、route53和等等。。。但在docker push之后,terraform脚本永远不会执行。我想知道为什么。(我是新来的…) 生成历史记录末尾的输出: sha256:xxxxxx size: 3066 [Container] 2018/01/11 22:33:08 Phase complete: POST_BUILD Success: true [Container] 2018/01/11

我正在尝试在aws codebuild上为我的项目设置构建,我正在使用terraform来设置所有实例、route53和等等。。。但在docker push之后,terraform脚本永远不会执行。我想知道为什么。(我是新来的…)

生成历史记录末尾的输出:

sha256:xxxxxx size: 3066

[Container] 2018/01/11 22:33:08 Phase complete: POST_BUILD Success: true
[Container] 2018/01/11 22:33:08 Phase context status code: Message: 
我的terraform脚本最后也没运行过?请帮忙


感谢您的YAML,看起来您正在尝试将一个多行值(图像标签…)与另一个值列表(地形脚本)混合,以用于后期构建命令。其效果是“命令”将仅设置为第一个单线值,列表将被取消标记

命令项旨在成为YAML列表:

例如:

version: 0.2

phases:
  install:
    commands:
      - echo Running docker daemon
      - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&
  build:
    commands:
      - docker build -t mywebsite .
  post_build:
    commands:
      - IMAGE_TAG=`echo $CODEBUILD_BUILD_ID`
      - IMAGE_PATH="$IMAGE_PATH_PREFIX:$IMAGE_TAG"
      - docker tag mywebsite $IMAGE_PATH
      - docker push $IMAGE_PATH
      - cd ./buildTools/terraform
      - terraform init
      - terraform apply

从YAML来看,您似乎正在尝试将一个多行值(IMAGE_TAG…)与另一个值列表(您的terraform脚本)混合,以用于post_build命令。其效果是“commands”将仅设置为第一个单一的多行值,并且该列表将被忽略

命令项旨在成为YAML列表:

例如:

version: 0.2

phases:
  install:
    commands:
      - echo Running docker daemon
      - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&
  build:
    commands:
      - docker build -t mywebsite .
  post_build:
    commands:
      - IMAGE_TAG=`echo $CODEBUILD_BUILD_ID`
      - IMAGE_PATH="$IMAGE_PATH_PREFIX:$IMAGE_TAG"
      - docker tag mywebsite $IMAGE_PATH
      - docker push $IMAGE_PATH
      - cd ./buildTools/terraform
      - terraform init
      - terraform apply

您需要去掉破折号“-”,因为您已经在使用批量shell脚本符号“|”。因此,您的后期构建步骤应如下所示:

 post_build:
 commands: |
  IMAGE_TAG=`echo $CODEBUILD_BUILD_ID`
  IMAGE_PATH="$IMAGE_PATH_PREFIX:$IMAGE_TAG"
  docker tag mywebsite $IMAGE_PATH
  docker push $IMAGE_PATH
  cd ./buildTools/terraform
  terraform init
  tterraform apply

您需要去掉破折号“-”,因为您已经在使用批量shell脚本符号“|”。因此,您的后期构建步骤应如下所示:

 post_build:
 commands: |
  IMAGE_TAG=`echo $CODEBUILD_BUILD_ID`
  IMAGE_PATH="$IMAGE_PATH_PREFIX:$IMAGE_TAG"
  docker tag mywebsite $IMAGE_PATH
  docker push $IMAGE_PATH
  cd ./buildTools/terraform
  terraform init
  tterraform apply