Maison  >  Questions et réponses  >  le corps du texte

Cloudbuild a rencontré des problèmes de déploiement sur App Engine

J'ai construit un projet en utilisant Node + Vue JS, le projet est structuré avec différents répertoires pour le code frontend et backend. /api 是后端代码,有自己的package.json,而 ui est le code frontal et possède également son propre package.json. Le projet est structuré comme suit :

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

J'essaie de déployer un projet sur App Engine à l'aide de Cloudbuild. cloudbuild.yaml La structure du dossier est la suivante :

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"

Les étapes 0 à 2 se terminent avec succès, mais lors de la création de l'application Vue pour la production, la construction échoue spécifiquement yarn run build命令。此命令在/ui目录的package.json中被列为vue-cli-service build.

Le message d'erreur est /bin/sh: 1: vue-cli-service: not found

On dirait que Cloudbuild ne trouve pas vue-cli, comme s'il n'était pas installé ou ne savait pas quoi construire.

Ma question est de savoir comment déployer des projets avec différents répertoires sur App Engine à l'aide de Cloudbuild ?

P粉018548441P粉018548441188 Il y a quelques jours428

répondre à tous(1)je répondrai

  • P粉736935587

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

    L'un des principes fondamentaux de Cloud Build est de commencer par le contexte d'exécution suivant à chaque étape. Seul le répertoire /workspace est conservé entre chaque étape.

    Dans la troisième étape, vous installez vue cli globalement, donc pas dans le répertoire courant (un sous-répertoire de l'espace de travail), mais dans le répertoire d'exécution du conteneur (/etcou ailleurs ; en tout cas, pas sous l'espace de travail) .

    Si vous supprimez le paramètre global, vous installerez la bibliothèque localement dans le répertoire de l'application (sous global参数,您将在应用程序目录(/workspace), donc l'installation persistera dans les étapes suivantes.

    répondre
    0
  • Annulerrépondre