即使构建不成功也不会获得构建失败状态运行(云构建远程构建器)

Does not getting build failure status even the build not successful run(cloud-build remote builder)

Cloud-build 未显示构建失败状态

我创建了自己的远程构建器,它 scp 所有文件从 /workspace 到我的 Instance 和 运行ning 基于使用 gcloud compute ssh -- COMMAND 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

谁能帮我解决一下。

提前致谢。

尝试添加

|| exit 1

在 docker 命令的末尾...或者,您可能只需要将入口点更改为 'bash' 并手动 运行 脚本

确认一下——第一部分是 运行-on.sh 脚本,第二部分是你的 cloudbuild.yaml 对吧?我假设您通过 UI and/or REST API?

手动触发构建

我在 bash 脚本上编写了所有 docker 命令,并向其中添加了以下错误处理代码。

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

有效!