Cloudbuild部署到App Engine遇到問題
P粉018548441
P粉018548441 2024-03-31 09:13:53
0
1
488

我已經建立了一個使用Node Vue JS的項目,該項目的結構中有不同的目錄用於存放前端和後端程式碼。 /api 是後端程式碼,有自己的package.json,而 ui 是前端程式碼,也有自己的package.json。該項目的結構如下:

/app
  /api
    package.json
  /ui
    package.json
  /config
    cloudbuild.yaml

我正在嘗試使用Cloudbuild將專案部署到App Engine。 cloudbuild.yaml 檔案的架構如下:

steps:
- name: gcr.io/cloud-builders/gcloud:latest
  entrypoint: "ls"
  args: ["-lah","/workspace"]
- name: node
  entrypoint: yarn
  args: ["install"]
  dir: "api"
- name: node
  entrypoint: yarn
  args: ['global', 'add', '@vue/cli']
  dir: "ui"
- name: node
  entrypoint: yarn
  args: ['run', 'build']
  dir: "ui"
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", "./app.yaml"]
timeout: "1600s"

步驟0-2成功完成,但在建立Vue應用程式以進行生產時,建置失敗,具體是yarn run build命令。此指令在/ui目錄的package.json中被列為vue-cli-service build

錯誤訊息為/bin/sh: 1: vue-cli-service: not found

看起來Cloudbuild找不到vue-cli,好像它沒有安裝或不知道要建置什麼。

我的問題是如何使用Cloudbuild將不同目錄的專案部署到App Engine?

P粉018548441
P粉018548441

全部回覆(1)
P粉736935587

Cloud Build的核心原則之一是在每個步驟中從下一個執行上下文開始。只有/workspace目錄在每個步驟之間保留。

在第三個步驟中,您在全域安裝vue cli,因此不在目前目錄(workspace的子目錄)中,而是在容器執行時目錄(/etc或其他地方;在任何情況下,都不在workspace下)。

如果您刪除global參數,您將在應用程式目錄(/workspace下)中本機安裝庫,因此安裝將在後續步驟中持續存在。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板