我需要在从git签出后使用谷歌Ko构建go项目,然后将图像推送到接受凭据的私有artifactory。如何在cloudbuild.yaml中定义上述步骤?采取源路径的步骤,以及采取私有存储库路径的步骤。如何通过脚本提供artifactory的凭据?
您得到的错误是由于failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "bash"
默认情况下,ko命令使用Distroles图像集合(gcr.io/distroles/static:nonrootimage(,它不包含shell或其他可执行文件减少容器的攻击面。
您可以首先创建Kodocker映像,我们将使用此docker映像作为Cloudbuild的基本iamage。我们将把Kodocker镜像推送并保存到GCR
Github:https://github.com/GoogleCloudPlatform/cloud-builders-community/tree/master/ko
有cloudbuild.yaml
可以在cloudbuild上构建映像,或者您也可以在本地运行docker build -t
来构建docker
一旦构建了docker镜像并将其推送到GCR,我们就可以编写cloudbuild.yaml
来构建应用程序
试试这个Cloudbuild.yaml
,例如
steps:
- name: gcr.io/$PROJECT_ID/ko
entrypoint: /bin/sh
env:
- 'KO_DOCKER_REPO=gcr.io/$PROJECT_ID'
args:
- -c
- |
echo $(/ko publish --preserve-import-paths ./cmd/ko) > ./ko_container.txt || exit 1