我正在使用 Google 的 Cloud Code 擴展和 Visual Studio Code 來使用 GCP 的 Cloud Build 并部署到本地 kubernetes 集群(Docker 桌面)。我已指示 Cloud Build 在安裝模塊后運行單元測驗。
當我使用命令列構建時gcloud beta builds submit,Cloud Build 會安裝模塊并成功構建失敗,因為我故意撰寫了一個失敗的單元測驗。那太好了。
但是,當我嘗試使用 Cloud Code 擴展構建和部署時,它根本沒有使用我的 cloudbuild.yaml。我知道這是因為
1.) 即使單元測驗失敗,構建也會成功
2.) GCP 日志中沒有出現來自單元測驗的日志
3.) 我完全洗掉了 cloudbuild.yaml 并且構建/部署仍然成功,這似乎暗示 Cloud Code 正在使用 Dockerfile
我需要做些什么來確保 Cloud Code 使用 cloudbuild.yaml 構建/部署到本地 kubernetes 實體?
謝謝!
cloudbuild.yaml
steps:
- name: node
entrypoint: npm
args: ['install']
- id: "test"
name: node
entrypoint: npm
args: ['test']
options:
logging: CLOUD_LOGGING_ONLY
腳手架.yaml
apiVersion: skaffold/v2beta19
kind: Config
build:
tagPolicy:
sha256: {}
artifacts:
- context: .
image: genesys-gencloud-dev
deploy:
kubectl:
manifests:
- kubernetes-manifests/**
profiles:
- name: cloudbuild
build:
googleCloudBuild: {}
啟動.json
{
"configurations": [
{
"name": "Kubernetes: Run/Debug - cloudbuild",
"type": "cloudcode.kubernetes",
"request": "launch",
"skaffoldConfig": "${workspaceFolder}\\skaffold.yaml",
"profile": "cloudbuild",
"watch": true,
"cleanUp": false,
"portForward": true,
"internalConsoleOptions": "neverOpen",
"imageRegistry": "gcr.io/my-gcp-project",
"debug": [
{
"image": "my-image-dev",
"containerName": "my-container-dev",
"sourceFileMap": {
"${workspaceFolder}": "/WORK_DIR"
}
}
]
}
]
}
uj5u.com熱心網友回復:
您需要編輯skaffold.yaml檔案才能使用 Cloud Build:
build:
googleCloudBuild: {}
有關更多詳細資訊,請參閱https://skaffold.dev/docs/pipeline-stages/builders/#remotely-on-google-cloud-build。
編輯:看起來您的 skaffold.yaml 為cloudbuild組態檔啟用了云構建,但組態檔未激活。
一些選項:
- 添加
"profile": "cloudbuild"到您launch.json的“在 Kubernetes 上運行”。 截屏 - 將 移至
googleCloudBuild: {}頂層build:部分。(換句話說,跳過使用組態檔) - 使用https://skaffold.dev/docs/environment/profiles/#activation中的其他方法之一激活組態檔
UDPATE(來自提問者)
我需要執行以下操作:
- 更新
skaffold.yaml如下。特別注意image構建 > 工件下的projectId欄位和組態檔 > 構建下的欄位。
apiVersion: skaffold/v2beta19
kind: Config
build:
tagPolicy:
sha256: {}
artifacts:
- context: .
image: gcr.io/my-project-id/my-image
deploy:
kubectl:
manifests:
- kubernetes-manifests/**
profiles:
- name: cloudbuild
build:
googleCloudBuild:
projectId: my-project-id
- 運行此命令以激活組態檔:
skaffold dev -p cloudbuild
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/509962.html
