即使构建不成功也不会获得构建失败状态运行(云构建远程构建器)
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
有效!
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
有效!