Не получает статус ошибки сборки, даже если сборка не удалась (облачный сборщик удаленного компоновщика) - PullRequest
0 голосов
/ 08 января 2020

В облачной сборке не отображается состояние ошибки сборки

Я создал свой собственный удаленный сборщик, который scp всех файлов из / workspace в мой экземпляр и запуск сборки с использованием gcloud compute s sh - КОМАНДА remote-builder

#!/bin/bash 
USERNAME=${USERNAME:-admin}
REMOTE_WORKSPACE=${REMOTE_WORKSPACE:-/home/${USERNAME}/workspace/}
GCLOUD=${GCLOUD:-gcloud}


KEYNAME=builder-key
ssh-keygen -t rsa -N "" -f ${KEYNAME} -C ${USERNAME} || true
chmod 400 ${KEYNAME}*

cat > ssh-keys <<EOF
${USERNAME}:$(cat ${KEYNAME}.pub)
EOF

${GCLOUD} compute scp --compress --recurse \
       $(pwd)/ ${USERNAME}@${INSTANCE_NAME}:${REMOTE_WORKSPACE} \
       --ssh-key-file=${KEYNAME}

${GCLOUD} compute ssh --ssh-key-file=${KEYNAME} \
       ${USERNAME}@${INSTANCE_NAME} -- ${COMMAND}

ниже приведен пример кода для запуска build ( cloudbuild.yaml )

steps:
- name: gcr.io/$PROJECT_ID/remote-builder
  env:
    - COMMAND="docker build -t [image_name]:[tagname] -f Dockerfile ."

Во время docker сборки внутри Dockerfile произошел сбой и в журнале отображаются ошибки, но отображается состояние SUCCESS

может помочь мне решить эту проблему.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Я написал все docker команды для скрипта bash и добавил ниже код обработки ошибок.

handle_error() {
    echo "FAILED: line $1, exit code $2"
    exit 1
}
trap 'handle_error $LINENO $?' ERR

Это работает!

0 голосов
/ 16 января 2020

попробуйте добавить

|| exit 1

в конце вашей команды docker ... в качестве альтернативы вам может понадобиться просто изменить точку входа на 'bash' и запустить скрипт вручную

Для подтверждения - первая часть была сценарием запуска. sh, а вторая часть была вашей cloudbuild.yaml, верно? Я предполагаю, что вы запускаете сборку вручную через пользовательский интерфейс и / или REST API?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...