[PYTHON] Mémo de déploiement de Django × Postgresql sur Docker vers Heroku

introduction

L'application Django créée dans des tutoriels tels que Django Girls a été convertie en Docker. Et je souhaite déployer l'application sur Heroku. Le didacticiel décrit également comment déployer Heroku, vous pouvez donc le déployer en vous y référant. Si vous ne le comprenez pas, vous pouvez essayer de créer, développer et déployer l'environnement localement une ou deux fois.

supposition

Création d'une application à déployer sur heroku

procédure

  1. Ajoutez les packages requis à heroku à la liste des bibliothèques Python, modifiez et enregistrez

requirements.txt


Django==2.2.16
psycopg2

#Ci-dessous se trouve la bibliothèque nouvellement ajoutée
dj-database-url
gunicorn
whitenoise==3.0.0
  1. Créez un Procfile dans le répertoire racine, éditez et enregistrez

Procfile


web:nom de l'interface de gestion gunicorn.wsgi --log-file -
  1. Pour indiquer à Heroku quelle version de Python vous souhaitez utiliser.

runtime.txt


python-3.6.4
  1. Créez un fichier d'environnement de développement, modifiez et enregistrez Cette fois, c'est postgresql même dans l'environnement de développement, donc copiez les paramètres de base de données de votre propre settings.py dans le champ DATABASE. Voici un exemple.

Interface de gestion/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. Modifiez le fichier de paramètres de l'environnement de production Ici aussi, les paramètres de la base de données définissent leur propre environnement

Interface de gestion/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. Modifiez wsgi.py

Interface de gestion/wsgi.py


...
# Heroku
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(application)
  1. Déployer sur heroku Le déploiement sur heroku peut être divisé en gros: pousser directement à partir de la ligne de commande ou déployer automatiquement du code Github, dans les deux cas pour télécharger le code sur heroku.

  2. Configurer la base de données de l'environnement de production (heroku) Exécutez la migration sur le serveur d'heroku et créez un utilisateur administrateur Cela peut également être exploité depuis la ligne de commande et le site heroku.

  3. Déploiement réussi Vérifiez si vous pouvez déployer correctement à partir de l'URL

Les références

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

Recommended Posts

Mémo de déploiement de Django × Postgresql sur Docker vers Heroku
Changer l'ordre de PostgreSQL dans Heroku
Un mémo qui a fait un tutoriel pour exécuter python sur heroku
[Heroku] Mémo pour le déploiement d'applications Python à l'aide d'Heroku sous Windows [Python]
Comment créer un environnement Django (python) sur Docker
Notes diverses sur le déploiement de l'application django sur Heroku
Mémo de la migration de la base de données de Django de SQLite3 vers MySQL sur Docker sur Raspberry Pi 4B
Déployer le projet django sur heroku
Ne perdez pas contre Ruby! Comment exécuter Python (Django) sur Heroku
[Django] Mémo pour créer un environnement de Django + MySQL + Vue.js [Python]
Personnalisez librement le modèle. Changer le nom de la variable et le nom du champ du modèle de l'application Django / Django Rest Framework ~ Comment refléter le déploiement sur heroku Memo
Achèvement de la commande docker sous Linux
Déployer l'application Django sur Heroku
python + django + scikit-learn + mecab (1) avec heroku
Comment exécuter matplotlib sur heroku
python + django + scikit-learn + mecab (2) avec heroku
Page DJango publiée sur heroku: Practice
Comment déployer une application Django sur heroku en seulement 5 minutes
Mettre à jour les applications exécutées sur Django 1.7 vers Django 1.8
Blog Django sur heroku: implémentation de la connexion
L'histoire de l'échec de la mise à jour de "calendar.day_abbr" sur l'écran d'administration de django
Migrer les applications Django exécutées sur Python 2.7 vers Python 3.5
Comment vérifier la version de Django
Déployer l'API Django avec heroku (mémo personnel)
Solution aux erreurs qui se produisent lors du déploiement sur Heroku
[Django] Erreur rencontrée lors du déploiement de heroku (2)
Déployer l'application Django sur Heroku [Partie 2]
Déployer l'application Django sur Heroku [Partie 1]
[Django] Problème rencontré lors du déploiement d'heroku (1)
Remarques sur l'activation de PostgreSQL avec Django
Lancez l'application Flask avec Docker sur Heroku
Notes sur la façon d'exécuter Cython sur OSX
J'ai essayé de résumer les paramètres des différentes bases de données de Django (MySQL, PostgreSQL)
Django + Docker
Comment exécuter une application Django sur un conteneur Docker (environnement de développement et de production)
[Linux] Examen des commandes de déploiement sur AWS
Publication du projet django développé dans Cloud9 sur heroku
Ce que j'ai trouvé en déployant Django sur EC2
Comment refléter ImageField dans Django + Docker (oreiller)
Comment implémenter "named_scope" de RubyOnRails avec Django
Djnago Note Set Japanese pour le nom de fichier Content-Disposition
[Windows] Mémo pour l'utilisation de Keras sur GPU [Tensorflow-GPU]
Je souhaite télécharger une application Django sur heroku
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
A vous qui êtes acculé par le déploiement de Django. Déploiement de Django 2.2 version complète sur Ubuntu 18.04 + Nginx
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
Publié le nombre de nouveaux positifs corona à Tokyo sur Slack (déployés sur Heroku)