2017-02-16 4 views
2

Я пытаюсь использовать AWS CodeBuild для моего проекта. Моя сборка работает на изображении aws/codebuild/docker:1.12.1. Это мой buildspec.yml, который был взят из AWS Docker SampleПочему мои команды AWS CodeBuild не работают?

version: 0.1 

phases: 
    pre_build: 
    commands: 
     - echo Logging in to Amazon ECR... 
     - $(aws ecr get-login --region $AWS_DEFAULT_REGION) 
    build: 
    commands: 
     - echo Build started on `date` 
     - echo Building the Docker image...   
     - docker build -t $IMAGE_REPO_NAME . 
    post-build: 
    commands: 
     - echo Build completed on `date` 
     - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG 
     - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG 

Все переменные среды определяются в конфигурации сборки. Но это мой выход журнала CodeBuild:

[Container] 2017/02/16 22:04:24 Waiting for agent 
[Container] 2017/02/16 22:04:33 Phase is DOWNLOAD_SOURCE 
[Container] 2017/02/16 22:04:34 Source is located at /tmp/src733484785/src 
[Container] 2017/02/16 22:04:34 YAML location is /tmp/src733484785/src/buildspec.yml 
[Container] 2017/02/16 22:04:34 Registering with agent 
[Container] 2017/02/16 22:04:34 Phases found in YAML: 3 
[Container] 2017/02/16 22:04:34 PRE_BUILD: 2 commands 
[Container] 2017/02/16 22:04:34 BUILD: 3 commands 
[Container] 2017/02/16 22:04:34 POST-BUILD: 3 commands 
[Container] 2017/02/16 22:04:34 Phase complete: DOWNLOAD_SOURCE Success: true 
[Container] 2017/02/16 22:04:34 Phase context status code: Message: 
[Container] 2017/02/16 22:04:34 Processing plaintext environment variables 
[Container] 2017/02/16 22:04:34 Processing build-level environment variables 
[Container] 2017/02/16 22:57:53 {"AWS_DEFAULT_REGION":"<censored>","AWS_ACCOUNT_ID":"<censored>","IMAGE_TAG":"<censored>","IMAGE_REPO_NAME":"<censored>"} 
[Container] 2017/02/16 22:57:53 AWS_DEFAULT_REGION = <censored> 
[Container] 2017/02/16 22:57:53 AWS_ACCOUNT_ID = <censored> 
[Container] 2017/02/16 22:57:53 IMAGE_TAG = <censored> 
[Container] 2017/02/16 22:57:53 IMAGE_REPO_NAME = <censored> 
[Container] 2017/02/16 22:04:34 Processing builtin environment variables 
[Container] 2017/02/16 22:04:34 Moving to directory /tmp/src733484785/src 
[Container] 2017/02/16 22:04:34 Preparing to copy artifacts 
[Container] 2017/02/16 22:04:34 No artifact files specified 

CodeBuild видит мои команды, но не запускать их! Строка отмечена как успешная. Кто-нибудь знает, что я сделал неправильно здесь?

ОБНОВЛЕНИЕ: Мне нужно было изменить post-build на post_build. Теперь сборка вытаскивает изображение maven для создания банки, а затем докер создает изображение. Таким образом, моя банка не содержит исходный код, и изображение не содержит maven и jdk. Это мой рабочий buildspec.yml:

version: 0.1 

phases: 
    pre_build: 
    commands: 
     - echo Logging in to Amazon ECR... 
     - $(aws ecr get-login --region $AWS_DEFAULT_REGION) 
     - echo Pulling maven image... 
     - docker pull maven:3.3-jdk-8 
    build: 
    commands: 
     - echo Build started on `date` 
     - echo Building jar... 
     - docker run -i --rm -w /opt/maven -v $PWD:/opt/maven -v $HOME/.m2:/root/.m2 maven:3.3-jdk-8 mvn clean install 
     - echo Building Docker Image... 
     - docker build -t $IMAGE_REPO_NAME . 
     - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG 
    post_build: 
    commands: 
     - echo Build completed on `date` 
     - echo Pushing Docker image... 
     - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG 
+0

Я не знаю, что я сделал, но он начал работать. Кто-нибудь знает, что может быть источником взлома? – zalpha314

+0

Вы выяснили, почему у вас это получилось? Я думаю, что у меня такая же проблема – cdimitroulas

+0

@cdimitroulas, нет, но я думаю, что это связано с отступом и интервалом списков. YAML очень придирчив ко всему этому. – zalpha314

ответ

Смежные вопросы