[PYTHON] Lancer Django sur un conteneur Docker à l'aide de docker-compose up

introduction

Démarrez Django sur le conteneur Docker à l'aide de docker-compose. J'utilise un Mac.

Raisons d'utiliser docker-compose

Dans une application ancrée, la base de données et les conteneurs middleware peuvent être séparés et l'application peut être composée de plusieurs conteneurs. Exécuter une exécution Docker sur chaque conteneur peut être fastidieux. À ce moment-là, si vous utilisez docker-compose, vous pouvez contrôler plusieurs conteneurs avec une seule commande. docker-compose décrit et contrôle le comportement du conteneur dans docker-compose.yml.

La configuration qui sépare les conteneurs pour chaque fonction est également introduite dans le didacticiel AWS et s'appelle un micro service. L'avantage des configurations prenant en charge les microservices est que le développement et les tests d'applications peuvent être effectués en petites unités pour chaque fonction. De plus, si chaque conteneur est conçu comme faiblement couplé, chaque fonction peut être développée indépendamment, il est donc possible de se développer, de déployer et de faire évoluer sans être conscient du travail des autres équipes. Même dans le développement de startups que j'ai expérimentées, il était pratique de concevoir en tenant compte des microservices, de sorte que le développement, la vérification et les tests parallèles dans de petites unités fonctionnelles étaient possibles.

Cet article fait partie du projet Build on Docker and Deploy to AWS Fargate.

Créer un Dockerfile

En guise de préparation préliminaire, veuillez installer Django dans l'environnement virtuel à l'aide de Pipenv. Veuillez vous référer au lien car j'ai écrit un article séparé pour la procédure détaillée. https://qiita.com/keita_gawahara/items/487a635d226fb0705b13

Créez un Dockerfile dans le dossier racine de votre projet.

$ touch Dockerfile

Ajoutez le contenu suivant au Dockerfile.

FROM python:3.7-slim

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

WORKDIR /

COPY Pipfile Pipfile.lock /
RUN pip install pipenv && pipenv install --system

COPY . /

Générez le Dockerfile avec la commande docker build.

$ docker build .
Sending build context to Docker daemon  155.1kB
...
Step 7/7 : COPY . /
 ---> d239897dhfii9u”
Successfully built d26473003af
$touch docker-compose.yml

Ajoutez le contenu suivant à docker-compose.yml.

version: '3.7'

services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    ports:
      - 8000:8000

Démarrez le conteneur à l'aide de la commande docker-compose up.

$ docker-compose up
Creating network...
...
web_1  | System check identified no issues (0 silenced).
web_1  | July 13, 2019 - 16:47:03
web_1  | Django version 2.2.3, using settings 'hello_project.settings'
web_1  | Starting development server at http://0.0.0.0:8000/
web_1  | Quit the server with CONTROL-C.

Lorsque j'ai consulté http://127.0.0.1:8000 dans mon navigateur, la page d'accueil de Django était affichée. Vous avez maintenant lancé Django sur Docker.

Après avoir quitté CONTROL-C, utilisez docker-compose down pour arrêter complètement le conteneur.

$ docker-compose down

Recommended Posts

Lancer Django sur un conteneur Docker à l'aide de docker-compose up
Déployer l'application Django avec Docker
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Configurer un serveur Samba avec Docker
Créer une image de conteneur Docker avec JRE8 / JDK8 sur Amazon Linux
Remarques sur l'activation de PostgreSQL avec Django
J'ai créé un environnement de développement pour Django 3.0 avec Docker, Docker-compose, Poetry
Lancez l'application Flask avec Docker sur Heroku
Exécutez matplotlib sur un conteneur Windows Docker
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
[Python] Créer un environnement de développement Django avec Docker
Transportez un conteneur Docker
Comment exécuter une application Django sur un conteneur Docker (environnement de développement et de production)
Retour sur la création d'un service Web avec Django 1
Lancer une application Web Python sur Nginx + Gunicorn avec Docker
Comment créer un environnement Django (python) sur Docker
Configurer Docker sur Oracle Linux (7.x) avec Vagrant
Retour sur la création d'un service Web avec Django 2
Remarques sur l'accélération du code Python avec Numba
Un mémo sur la création d'une application Django (Python) avec Docker
Déployer l'application Django créée avec PTVS sur Azure
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créer un environnement django avec docker-compose (MariaDB + Nginx + uWSGI)
Créer une page d'accueil avec django
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
Créer une application Todo avec Django ① Créer un environnement avec Docker
Déployer l'application Django sur EC2 avec Nginx + Gunicorn + Supervisor
Créer un serveur Flask avec Docker
Créer un fichier deb avec Docker
Django Tips-Créez un site de classement avec Django-
Implémenter l'application Django sur Hy
environnement en ligne du serveur de code (5) Lancer le serveur de code sur Docker
Créer un filtre avec un modèle django
Comment supprimer un conteneur Docker
Lancement d'une application Web sur AWS avec django et modification des tâches
Créer un téléchargeur de fichiers avec Django
Exécutez des fichiers Python dans un conteneur Docker sur un Raspbian distant via PyCharm
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
Une série d'ingénieurs d'infrastructure amateurs touchant Django avec Docker (2): création d'un modèle
Remarques sur la configuration d'un conteneur Docker pour l'utilisation de JUMAN ++, KNP, python
Django + Apache avec mod_wsgi sur Windows Server 2016
Un mémo contenant Python2.7 et Python3 dans CentOS
Carte des informations de location sur une carte avec python
Créez un environnement d'API rapide avec docker-compose
Obtenez un environnement local pour DynamoDB avec Docker
Lancer une demande avec un certificat sur httpie
Raclons un site dynamique avec Docker
Créer un écran de connexion dans Django all auth
[Linux] Créer un environnement Jenkins avec Docker
Environnement de lancement avec LineBot + Heroku + Docker + Python
Exécutez une application Web Python avec Docker
Créer un service Web avec Docker + Flask
J'ai fait une application WEB avec Django
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Une série d'ingénieurs d'infrastructure amateurs touchant Django avec Docker ⑤: View, Template, CSS
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Essai et erreur]
Django + Docker
Créez un environnement LAMP sur votre Docker local
Créer un environnement de développement de langage C avec un conteneur