[PYTHON] Un exemple de cloudbuild.yaml lors du déploiement automatique de Django sur App Engine avec Cloud Build

Aperçu

Un paramètre qui permet aux projets Django d'être automatiquement déployés sur App Engine avec Cloud Build. cloudbuild.yaml Il semble n'y avoir aucune information japonaise dans les paramètres, je vais donc les partager.

Méthode

Exécutez Méthode de déploiement standard + Utilisez le fichier cloudbuild.yaml suivant.

cloudbuild.yaml


steps:
#Créer un environnement pour exécuter django pour collectstatic
- name: 'python:3'
  entrypoint: python3
  args: ['-m', 'venv', '/workspace/venv']
- name: 'python:3'
  entrypoint: "/workspace/venv/bin/pip"
  args: ['install', '-r', 'requirements.txt']
#Collectez de l'électricité statique en utilisant le venv créé (le test, etc. peut être exécuté)
- name: 'python:3'
  entrypoint: "/workspace/venv/bin/python"
  args: ['./manage.py', 'collectstatic', '--noinput']
#Déployer sur App Engine
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy"]
timeout: "1200s"

Lors de l'étape de déploiement, nous créons un venv et y exécutons collectstatic ou des tests. La seule mise en garde est que Cloud Build ne prend en charge les informations de "/ workspace /" qu'à l'étape suivante.

Résumé

Avec les paramètres cloudbuild.yaml ci-dessus, vous pouvez déployer correctement.

Si vous faites Lier GitHub et Cloud Build, il sera automatiquement déployé chaque fois que vous poussez vers GitHub. Il est recommandé car il peut être défini sur.

Si vous avez des questions, des questions ou des suggestions d'amélioration concernant le premier message, n'hésitez pas à commenter.

Recommended Posts

Un exemple de cloudbuild.yaml lors du déploiement automatique de Django sur App Engine avec Cloud Build
[Cloud 9] Essayez de créer un environnement avec django 1.11 de Python 3.4 sans même comprendre 1 mm
Créer une application Todo avec Django ① Créer un environnement avec Docker
Comment créer une application à partir du cloud à l'aide du framework Web Django
J'ai essayé de créer un environnement Ubuntu 20.04 LTS + ROS2 avec Raspberry Pi 4
Comment développer une application de panier avec Django
Comment implémenter "named_scope" de RubyOnRails avec Django
Divers mémorandums lors de l'utilisation du sdk de l'API de messagerie LINE avec Python (2.7.9) + Google App Engine
Lorsque vous souhaitez filtrer avec le framework Django REST
J'ai essayé de créer un pipeline ML avec Cloud Composer
Déployer une application existante avec docker + pyenv-virtualenv + uwsgi + django
Exemple d'environnement pytest pour réparer la base de données avec Docker
Comment utiliser Django avec Google App Engine / Python
Choses à faire lorsque vous commencez à développer avec Django
Points à garder à l'esprit lors de la migration avec Django
Paramètres lors du développement d'applications App Engine / Python avec VS Code
C'était trop facile d'utiliser une base de données existante avec Django
Gestion des fichiers statiques lors du déploiement en production avec Django
Comment résoudre la protection CSRF lors de l'utilisation d'AngularJS avec Django
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 2)
Que faire lorsqu'une erreur se produit avec import _ssl
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 3)
Comment exécuter une application construite avec Python + py2app construite avec Anaconda
[Django] Mémo pour créer un environnement de Django + MySQL + Vue.js [Python]
[Python] Qu'est-ce qu'une tranche? Une explication facile à comprendre de son utilisation avec un exemple concret
J'ai essayé de construire un modèle d'estimation des titres d'articles susceptibles de faire le buzz avec Qiita