我建立了一個Node Vue JS專案,它的結構是前臺和后臺代碼的不同目錄。/api是后端代碼,有自己的package.json,ui是前端代碼,有自己的package.json。這個專案的結構是這樣的:
/app
/api
package.json。
/ui
package.json /ui
/config
cloudbuild.yaml /config.
我正試圖使用Cloudbuild將專案部署到App Engine。cloudbuild.yaml檔案的結構是這樣的:
steps。
- name: gcr.io/cloud-builders/gcloud: latest
entrypoint: "ls"/span>
args: ["-lah","/workspace"]
- name: node
entrypoint: yarn
args: ["install"]
dir: "api"] "api"
- name: node
entrypoint: yarn
args: ['global'/span>, 'add'/span>, '@vue/cli']
dir。"ui"] "ui"
- name: node
entrypoint: yarn
args: ['run'/span>, 'build'/span>]
dir: "ui"] "ui"
- name: "gcr.io/cloud-builders/gcloud"。
args: ["app", "deploy", " ./app.yaml"]
timeout。"1600s"] "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?
uj5u.com熱心網友回復:
Cloud Build的核心原則之一是每一步都從下一個執行環境開始,每一步之間只保留/workspace目錄。
在你的第三步中,你在全域范圍內安裝了你的 vue cli,因此,不是在你的當前目錄(workspace 的一個子目錄)中,而是在容器運行時目錄(/etc或其他地方;在任何情況下,都不是在workspace下。
如果你洗掉了global引數,你將在你的應用程式目錄下(/workspace下)安裝庫,因此安裝將持續到以下步驟。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/317598.html
標籤:
