[PYTHON] Ein Beispiel für cloudbuild.yaml bei der automatischen Bereitstellung von Django für App Engine mit Cloud Build

Überblick

Eine Einstellung, mit der Cloud Build Django-Projekte automatisch für App Engine bereitstellen kann. cloudbuild.yaml Die Einstellungen scheinen keine japanischen Informationen zu enthalten, daher werde ich sie weitergeben.

Methode

Führen Sie [Standardbereitstellungsmethode] aus (https://cloud.google.com/source-repositories/docs/quickstart-triggering-builds-with-source-repositories) + Verwenden Sie die folgende Datei cloudbuild.yaml.

cloudbuild.yaml


steps:
#Erstellen Sie eine Umgebung, in der Django für Collectstatic ausgeführt werden kann
- name: 'python:3'
  entrypoint: python3
  args: ['-m', 'venv', '/workspace/venv']
- name: 'python:3'
  entrypoint: "/workspace/venv/bin/pip"
  args: ['install', '-r', 'requirements.txt']
#Sammeln Sie statische Daten mit dem erstellten Venv (Test usw. kann ausgeführt werden)
- name: 'python:3'
  entrypoint: "/workspace/venv/bin/python"
  args: ['./manage.py', 'collectstatic', '--noinput']
#In App Engine bereitstellen
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy"]
timeout: "1200s"

Im Bereitstellungsschritt erstellen wir ein Venv und führen dort Collectstatic oder Tests durch. Die einzige Einschränkung ist, dass Cloud Build nur die Informationen in "/ workspace /" für den nächsten Schritt übernimmt.

Zusammenfassung

Mit den obigen Einstellungen für cloudbuild.yaml können Sie eine gute Bereitstellung durchführen.

Wenn Sie [Link GitHub und Cloud Build] ausführen (https://cloud.google.com/source-repositories/docs/mirroring-a-github-repository), wird es bei jedem Push an GitHub automatisch bereitgestellt. Es wird empfohlen, da es auf eingestellt werden kann.

Wenn Sie Fragen, Fragen oder Verbesserungsvorschläge zum ersten Beitrag haben, können Sie diese gerne kommentieren.

Recommended Posts

Ein Beispiel für cloudbuild.yaml bei der automatischen Bereitstellung von Django für App Engine mit Cloud Build
[Cloud 9] Versuchen Sie, eine Umgebung mit Django 1.11 von Python 3.4 zu erstellen, ohne auch nur 1 mm zu verstehen
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
So erstellen Sie eine Anwendung aus der Cloud mithilfe des Django-Webframeworks
Ich habe versucht, mit Raspberry Pi 4 eine Umgebung von Ubuntu 20.04 LTS + ROS2 zu erstellen
So entwickeln Sie eine Cart-App mit Django
So implementieren Sie "named_scope" von RubyOnRails mit Django
Verschiedene Memoranden bei Verwendung von SDK der LINE Messaging API mit Python (2.7.9) + Google App Engine
Wenn Sie mit dem Django REST-Framework filtern möchten
Ich habe versucht, eine ML-Pipeline mit Cloud Composer zu erstellen
Stellen Sie eine vorhandene App mit Docker + Pyenv-Virtualenv + Uwsgi + Django bereit
Beispiel einer Pytest-Umgebung zum Reparieren der Datenbank mit Docker
Verwendung von Django mit Google App Engine / Python
Dinge zu tun, wenn Sie anfangen, sich mit Django zu entwickeln
Dinge, die Sie bei der Migration mit Django beachten sollten
Einstellungen beim Entwickeln von App Engine / Python-Apps mit VS-Code
Es war zu einfach, eine vorhandene Datenbank mit Django zu verwenden
Umgang mit statischen Dateien bei der Bereitstellung in der Produktion mit Django
So lösen Sie den CSRF-Schutz bei Verwendung von AngularJS mit Django
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 2)
Was tun, wenn beim Importieren von _ssl ein Fehler auftritt?
Erstellen Sie mit Django eine Bulletin-Board-App von Grund auf neu. (Teil 3)
So führen Sie eine mit Python + py2app erstellte App aus, die mit Anaconda erstellt wurde
[Django] Memo zum Erstellen einer Umgebung von Django + MySQL + Vue.js [Python]
[Python] Was ist ein Slice? Eine leicht verständliche Erklärung zur Verwendung anhand eines konkreten Beispiels
Ich habe versucht, ein Schätzmodell für Artikeltitel zu erstellen, die wahrscheinlich mit Qiita in Einklang stehen