Cloudbuild 无法从我的 Vue 应用程序中找到我的 package.json
Cloudbuild can't find my package.json from my Vue app
我正在尝试通过 GCP Cloud Build 将 Vue JS 应用程序部署到 GCP App Engine。我已按照说明在与 app.yaml 文件不同的目录中创建了一个 cloudbuild.yaml 文件。
的构建错误
error Couldn't find a package.json file in "/workspace"
看起来 cloudbuild.yaml 文件的前两步执行成功,但在尝试 运行 构建时失败。
目录是这样的:
root/
├─ config/
│ ├─ cloudbuild.yaml
app.yaml
package.json
这是我的 app.yaml 文件
runtime: nodejs10
service: icx-ui
handlers:
# Serve all static files with urls ending with a file extension
- url: /(.*\..+)$
static_files: dist/
upload: dist/(.*\..+)$
# catch all handler to index.html
- url: /.*
static_files: dist/index.html
upload: dist/index.html
我的cloudbuild.yaml如下:
steps:
- name: node
entrypoint: yarn
args: ["install"]
- name: node
entrypoint: yarn
args: ['global', 'add', '@vue/cli']
- name: node
entrypoint: yarn
args: ["run", "build"]
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy", "./app.yaml"]
timeout: "1600s"
如您所见,我将文件路径添加到我的 app.yaml 文件
您的 gcloud builds submit
命令定义的源目录是 dist/
,这是您的应用程序的构建生产版本。默认情况下,此目录不包含 package.json 和 app.yaml。
Cloud Build 上的 运行 yarn run build
需要 src/
和 package.json
等文件来构建
您将通过 App Engine 提供的文件 (dist)。解决办法是指定根项目为build的源目录:
gcloud builds submit --config ./config/cloudbuild.yaml .
如果在某些情况下这让您担心部署中包含一些不必要的文件,例如 node_modules
,您可以通过在 .gcloudignore
上指定它们来忽略这些文件。
我正在尝试通过 GCP Cloud Build 将 Vue JS 应用程序部署到 GCP App Engine。我已按照说明在与 app.yaml 文件不同的目录中创建了一个 cloudbuild.yaml 文件。
的构建错误error Couldn't find a package.json file in "/workspace"
看起来 cloudbuild.yaml 文件的前两步执行成功,但在尝试 运行 构建时失败。
目录是这样的:
root/
├─ config/
│ ├─ cloudbuild.yaml
app.yaml
package.json
这是我的 app.yaml 文件
runtime: nodejs10
service: icx-ui
handlers:
# Serve all static files with urls ending with a file extension
- url: /(.*\..+)$
static_files: dist/
upload: dist/(.*\..+)$
# catch all handler to index.html
- url: /.*
static_files: dist/index.html
upload: dist/index.html
我的cloudbuild.yaml如下:
steps:
- name: node
entrypoint: yarn
args: ["install"]
- name: node
entrypoint: yarn
args: ['global', 'add', '@vue/cli']
- name: node
entrypoint: yarn
args: ["run", "build"]
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy", "./app.yaml"]
timeout: "1600s"
如您所见,我将文件路径添加到我的 app.yaml 文件
您的 gcloud builds submit
命令定义的源目录是 dist/
,这是您的应用程序的构建生产版本。默认情况下,此目录不包含 package.json 和 app.yaml。
运行 yarn run build
需要 src/
和 package.json
等文件来构建
您将通过 App Engine 提供的文件 (dist)。解决办法是指定根项目为build的源目录:
gcloud builds submit --config ./config/cloudbuild.yaml .
如果在某些情况下这让您担心部署中包含一些不必要的文件,例如 node_modules
,您可以通过在 .gcloudignore
上指定它们来忽略这些文件。