Google cloud storage 在GCS上使用Google云构建部署失败

Google cloud storage 在GCS上使用Google云构建部署失败,google-cloud-storage,google-cloud-build,Google Cloud Storage,Google Cloud Build,我有一个在谷歌云存储上运行的reactjs静态应用程序。使用云构建,我试图自动化构建和部署过程 以下是cloudbuild.yaml文件: steps: # Install - name: 'gcr.io/cloud-builders/npm' entrypoint: 'npm' args: ['install'] # Test #- name: 'gcr.io/cloud-builders/npm' #entrypoint: 'npm' #ar

我有一个在谷歌云存储上运行的reactjs静态应用程序。使用云构建,我试图自动化构建和部署过程

以下是cloudbuild.yaml文件:

steps:
  # Install
  - name: 'gcr.io/cloud-builders/npm'
    entrypoint: 'npm'
    args: ['install']

  # Test
  #- name: 'gcr.io/cloud-builders/npm'
    #entrypoint: 'npm'
    #args: ['test', 'test:ci']

  # Build
  - name: 'gcr.io/cloud-builders/npm'
    entrypoint: 'npm'
    args: ['build']

  # Syncing to Static Hosting on GCS  
  - name: 'gcr.io/cloud-builders/gsutil'
    args: ["-m", "rsync", "-r", "-c", "-d", "./build", "gs://mybucket.com"]
与地面军事系统同步的最后一步失败。我得到以下错误:

Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/npm
Step #0: npm WARN saveError ENOENT: no such file or directory, open '/workspace/package.json'
Step #0: npm notice created a lockfile as package-lock.json. You should commit this file.
Step #0: npm WARN enoent ENOENT: no such file or directory, open '/workspace/package.json'
Step #0: npm WARN workspace No description
Step #0: npm WARN workspace No repository field.
Step #0: npm WARN workspace No README data
Step #0: npm WARN workspace No license field.
Step #0: 
Step #0: up to date in 0.711s
Step #0: found 0 vulnerabilities
Step #0: 
Finished Step #0
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/npm
Finished Step #1
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/gsutil
Step #2: CommandException: arg (./build) does not name a directory, bucket, or bucket subdir.
Finished Step #2
ERROR
ERROR: build step 2 "gcr.io/cloud-builders/gsutil" failed: step exited with non-zero status: 1
我的项目结构:

RootProject
  -> front-end-webapp
           -> src/
           -> cloudbuild.yaml
           -> build/
           -> public/
           -> package.json
  -> backend-service1
  -> backend-service2
我编写的触发器指向前端webapp子文件夹中的cloudbuild.yaml文件。 当我手动执行

npm run build or yarn build
然后我在前端webapp下的build文件夹中获取生产准备文件,我想将其放在谷歌云存储中。仅生成文件夹中的文件,而不是包含文件的生成文件夹本身


我试了很多,但没有成功。如果我这样做了。而不是像args这样的args中的“/build:[-m,rsync,-r,-c,-d,./build,gs://mybucket.com]然后,cloud build将成功执行,但它也会复制根项目中存在的entires文件和子文件夹。

生成作业由提交到前端webapp的文件触发,您将运行提交到前端webapp的cloudbuild.yaml文件

但是,回购协议的根源是/而不是前端webapp。因此,添加。这将迫使步骤开始进入正确的文件夹

编辑

当我在目录管理中陷入困境和迷路时,我会介绍这个步骤来查看工作区中存在的内容

- name: gcr.io/cloud-builders/gcloud:latest
  entrypoint: "ls"
  args: ["-lah","/workspace"]

生成作业由提交到前端webapp的文件触发,您运行位于前端webapp中的cloudbuild.yaml文件

但是,回购协议的根源是/而不是前端webapp。因此,添加。这将迫使步骤开始进入正确的文件夹

编辑

当我在目录管理中陷入困境和迷路时,我会介绍这个步骤来查看工作区中存在的内容

- name: gcr.io/cloud-builders/gcloud:latest
  entrypoint: "ls"
  args: ["-lah","/workspace"]

您是否注意到步骤0的输出表示找不到package.json?我不相信您当前的目录是您认为的位置。可能包括一个记录当前目录的测试步骤和一个递归的目录列表。如何记录目录…是否需要传递任何环境变量?请运行一个执行一个运行pwd的shell的步骤。使用运行ls-laR的shell步骤的递归列表可能也会有所帮助。您是否注意到步骤0的输出表示找不到package.json?我不相信您当前的目录是您认为的位置。可能包括一个记录当前目录的测试步骤和一个递归的目录列表。如何记录目录…是否需要传递任何环境变量?请运行一个执行一个运行pwd的shell的步骤。使用运行ls-laR的shell步骤的递归列表可能也会有所帮助。谢谢,这里需要dir。很抱歉,仍然收到错误“已具有摘要为:gcr.io/cloud-builders/gsutil CommandException:arg的映像。/workspace/front-end webapp/build未命名目录、bucket或bucket subdir”。…-name:'gcr.io/cloud-builders/gsutil'dir:'front-end webapp'args:[-m,rsync,-r,-c,-d,./workspace/fe-web/build,gs://dev.getsmallpdf.com]。我尝试了./fe-web/build和./build,但veinI中的所有内容都添加了一个提示来帮助您进行调试。您太棒了……我调试后发现一个点导致了问题。我对此进行了更新,它的效果非常好:[-m,rsync,-r,-c,-d,/workspace/fe-web/build,gs://dev.getsmallpdf.com]很高兴提供帮助!:谢谢,这里需要dir。很抱歉,仍然出现错误“已经有摘要为:gcr.io/cloud-builders/gsutil CommandException:arg的图像。/workspace/front-end webapp/build没有命名目录、bucket或bucket subdir。”…-name:'gcr.io/cloud-builders/gsutil'dir:'front-end webapp'args:[-m,rsync,-r,-c,-d,./workspace/fe-web/build,gs://dev.getsmallpdf.com]。我尝试了./fe-web/build和./build,但veinI中的所有内容都添加了一个提示来帮助您进行调试。您太棒了……我调试后发现一个点导致了问题。我对此进行了更新,它的效果非常好:[-m,rsync,-r,-c,-d,/workspace/fe-web/build,gs://dev.getsmallpdf.com]很乐意帮忙!: