J'essaie de déployer la version de production de l'application React (créée à l'aide de create-react-app) dans l'environnement flexible du moteur d'application gcloud.
Après avoir exécuté npm run build
, le dossier de construction a été créé:
Voici mon app.yaml:
# [START runtime]
runtime: nodejs
env: flex
# [END runtime]
# [START handlers]
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
- url: /
static_dir: build
# [END handlers]
Une fois déployée sur App Engine, la configuration de la version affiche:
runtime: nodejs
api_version: '1.0'
env: flexible
threadsafe: true
handlers:
- url: /
application_readable: false
static_files: build/index.html
require_matching_file: false
upload: build/index.html
- url: '/(.*)'
application_readable: false
static_files: "build/\\1"
require_matching_file: false
upload: 'build/.*'
automatic_scaling:
min_num_instances: 2
max_num_instances: 20
cpu_utilization:
target_utilization: 0.5
L'application de développement est diffusée à la place de la version de production du dossier de génération. Qu'est-ce que je fais mal?
Lors du déploiement d'une application/service GAE, le répertoire contenant le fichier app.yaml
De l'application/service en cours de déploiement est considéré comme le répertoire de niveau supérieur de l'application/service et le contenu de ce répertoire est ce qui est déployé. Ce qui, dans votre cas, correspond à ce que je suppose que vous appelez la version de développement.
Si vous voulez que votre répertoire build
soit le répertoire principal de votre application/service, vous devez:
créez un fichier app.yaml
dans le répertoire build
(manuellement ou demandez à votre processus de génération de le faire)
Note: vous devez ajuster les chemins dans ce fichier, car il n'y aura plus de répertoire build
dans le répertoire de l'application. Ou essayez de créer à l'intérieur un lien symbolique build -> .
Vers lui-même, autorisant éventuellement l'utilisation du contenu app.yaml
Existant tel quel, sans ajuster les chemins (pas certain à 100%, cela fonctionnera cependant) .
déployez ce fichier build/app.yaml
, pas celui du haut (bsn
) dir.