Heim  >  Fragen und Antworten  >  Hauptteil

Cloudbuild hat bei der Bereitstellung in App Engine Probleme festgestellt

Ich habe ein Projekt mit Node + Vue JS erstellt. Das Projekt ist mit verschiedenen Verzeichnissen für Frontend- und Backend-Code strukturiert. /api 是后端代码,有自己的package.json,而 ui ist der Front-End-Code und verfügt auch über eine eigene package.json. Das Projekt ist wie folgt aufgebaut:

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

Ich versuche, mit Cloudbuild ein Projekt in App Engine bereitzustellen. cloudbuild.yaml Der Aufbau der Datei ist wie folgt:

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"

Schritte 0–2 werden erfolgreich abgeschlossen, aber beim Erstellen der Vue-App für die Produktion schlägt der Build ausdrücklich yarn run build命令。此命令在/ui目录的package.json中被列为vue-cli-service build fehl.

Die Fehlermeldung ist /bin/sh: 1: vue-cli-service: not found

Sieht so aus, als ob Cloudbuild vue-cli nicht finden kann, weil es nicht installiert ist oder nicht weiß, was es erstellen soll.

Meine Frage ist, wie man mit Cloudbuild Projekte mit unterschiedlichen Verzeichnissen in App Engine bereitstellt.

P粉018548441P粉018548441188 Tage vor423

Antworte allen(1)Ich werde antworten

  • P粉736935587

    P粉7369355872024-04-01 00:43:36

    Cloud Build的核心原则之一是在每个步骤中从下一个执行上下文开始。只有/workspace目录在每个步骤之间保留。

    在第三个步骤中,您在全局安装vue cli,因此不在当前目录(workspace的子目录)中,而是在容器运行时目录(/etc或其他地方;在任何情况下,都不在workspace下)。

    如果您删除global参数,您将在应用程序目录(/workspace下)中本地安装库,因此安装将在后续步骤中持续存在。

    Antwort
    0
  • StornierenAntwort