[PYTHON] Memo zur Bereitstellung von Django × Postgresql auf Docker für Heroku

Einführung

Die in Tutorials wie Django Girls erstellte Django-App wurde in Docker konvertiert. Und ich möchte die App für Heroku bereitstellen. Das Tutorial beschreibt auch, wie Heroku bereitgestellt wird. Sie können es also grundsätzlich bereitstellen, indem Sie darauf verweisen. Wenn Sie es nicht verstehen, können Sie versuchen, die Umgebung ein- oder zweimal lokal zu erstellen, zu entwickeln und bereitzustellen.

Annahme

Erstellt eine App für Heroku

Verfahren

  1. Fügen Sie heroku die erforderlichen Pakete zur Liste der Python-Bibliotheken hinzu, bearbeiten und speichern Sie sie

requirements.txt


Django==2.2.16
psycopg2

#Darunter befindet sich die neu hinzugefügte Bibliothek
dj-database-url
gunicorn
whitenoise==3.0.0
  1. Erstellen Sie eine Procfile im Stammverzeichnis, bearbeiten und speichern Sie sie

Procfile


web:Name der Gunicorn-Verwaltungsschnittstelle.wsgi --log-file -
  1. Um Heroku mitzuteilen, welche Version von Python Sie verwenden möchten.

runtime.txt


python-3.6.4
  1. Erstellen Sie eine Entwicklungsumgebungsdatei, bearbeiten und speichern Sie sie Diesmal ist es sogar in der Entwicklungsumgebung postgresql. Kopieren Sie daher die Datenbankeinstellungen Ihrer eigenen settings.py in das Feld DATABASE. Unten ist ein Beispiel.

Verwaltungsschnittstelle/local_settings.py


import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

DEBUG = True
  1. Bearbeiten Sie die Einstellungsdatei für die Produktionsumgebung Auch hier legen die Datenbankeinstellungen ihre eigene Umgebung fest

Verwaltungsschnittstelle/settings.py


import dj_database_url

...

DEBUG = False

ALLOWED_HOSTS = ['127.0.0.1', '.herokuapp.com']

...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': '5432',
    }
}

...

db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
  1. Bearbeiten Sie wsgi.py

Verwaltungsschnittstelle/wsgi.py


...
# Heroku
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(application)
  1. Auf Heroku bereitstellen Die Bereitstellung auf Heroku kann grob in Push direkt über die Befehlszeile oder die automatische Bereitstellung von Github-Code unterteilt werden, um den Code auf Heroku hochzuladen.

  2. Richten Sie die Heroku-Datenbank (Production Environment) ein Führen Sie die Migration auf dem Server von Heroku aus und erstellen Sie einen Administrator Dies kann auch über die Befehlszeile und die Heroku-Site bedient werden.

  3. Erfolgreiche Bereitstellung Überprüfen Sie, ob Sie die URL ordnungsgemäß bereitstellen können

Verweise

https://tutorial-extensions.djangogirls.org/ja/heroku/ https://devcenter.heroku.com/articles/getting-started-with-python

Recommended Posts

Memo zur Bereitstellung von Django × Postgresql auf Docker für Heroku
Ändern Sie die Reihenfolge von PostgreSQL in Heroku
Ein Memo, das ein Tutorial zum Ausführen von Python auf Heroku erstellt hat
[Heroku] Memo zum Bereitstellen von Python-Apps mit Heroku unter Windows [Python]
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Verschiedene Hinweise zur Bereitstellung der Django-App auf Heroku
Memo zur Migration von Djangos DB von SQLite3 nach MySQL auf Docker auf Raspberry Pi 4B
Stellen Sie das Django-Projekt für Heroku bereit
Verliere nicht gegen Ruby! Wie man Python (Django) auf Heroku ausführt
[Django] Memo zum Erstellen einer Umgebung von Django + MySQL + Vue.js [Python]
Passen Sie das Modell frei an. Ändern Sie den Variablennamen und den Feldnamen des Modells der Django / Django Rest Framework-App. ~ So spiegeln Sie die Bereitstellung in heroku Memo wider
Abschluss des Docker-Befehls unter Linux
Stellen Sie die Django-Anwendung auf Heroku bereit
Python + Django + Scikit-Learn + Mecab (1) mit Heroku
Wie man Matplotlib auf Heroku ausführt
Python + Django + Scikit-Learn + Mecab (2) mit Heroku
DJango-Seite veröffentlicht auf Heroku: Practice
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit
Aktualisieren Sie Anwendungen, die unter Django 1.7 ausgeführt werden, auf Django 1.8
Django Blog auf Heroku: Login Implementierung
Die Geschichte, dass "calendar.day_abbr" auf dem Admin-Bildschirm von django nicht aktualisiert werden konnte
Migrieren Sie Django-Anwendungen, die unter Python 2.7 ausgeführt werden, auf Python 3.5
So überprüfen Sie die Version von Django
Stellen Sie Django api mit Heroku bereit (persönliches Memo)
Lösung für Fehler, die bei der Bereitstellung in Heroku auftreten
[Django] Fehler beim Bereitstellen von Heroku (2)
Stellen Sie die Django-App in Heroku bereit [Teil 2]
Stellen Sie die Django-App in Heroku bereit [Teil 1]
[Django] Probleme beim Bereitstellen von Heroku (1)
Hinweise zum Aktivieren von PostgreSQL mit Django
Starten Sie die Flask-Anwendung mit Docker auf Heroku
Hinweise zum Ausführen von Cython unter OSX
Ich habe versucht, die Einstellungen für verschiedene Datenbanken von Django (MySQL, PostgreSQL) zusammenzufassen.
Django + Docker
So führen Sie eine Django-Anwendung auf einem Docker-Container aus (Entwicklungs- und Produktionsumgebung)
[Linux] Überprüfung der Befehle für die Bereitstellung unter AWS
Veröffentlichtes Django-Projekt, entwickelt in Cloud9 auf Heroku
Was ich durch die Bereitstellung von Django auf EC2 gefunden habe
So reflektieren Sie ImageField in Django + Docker (Kissen)
So implementieren Sie "named_scope" von RubyOnRails mit Django
Djnago Hinweis Japanisch für Dateinamen für Inhaltsdisposition festlegen
[Windows] Memo zur Verwendung von Keras auf der GPU [Tensorflow-GPU]
Ich möchte eine Django-App auf Heroku hochladen
Ich möchte einen Screenshot der Site in Docker mit einer beliebigen Schriftart erstellen
Für Sie, die durch den Einsatz von Django in die Enge getrieben werden. Vollversion der Django 2.2-Bereitstellung unter Ubuntu 18.04 + Nginx
Ein Memo darüber, wie man das schwierige Problem der Erfassung von FX mit AI überwinden kann
Veröffentlichte die Anzahl der neuen Corona-Positiven in Tokio an Slack (auf Heroku bereitgestellt)