[Python] Créer un environnement de développement Django avec Docker

Nous allons créer un environnement de développement pour Django et postgreSQL en utilisant Docker et Docker-compose. Appuyez sur http: // localhost: 8000 jusqu'à ce que l'écran ci-dessous s'affiche.

スクリーンショット 2020-08-28 13.44.31.png

Installation de Django

Si vous avez déjà Django, vous n'êtes pas obligé.

pip install Django

Installer Docker

Installez Docker depuis ici

** Vérifier la version **

$ docker --version
Docker version 18.09.2

Installez Docker-compose

Installez Docker-compose avec la commande suivante.

$ curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

$ chmod +x /usr/local/bin/docker-compose

** Vérifier la version **

$ docker-compose --version
docker-compose version 1.23.2

Créer un répertoire pour Django

$ mkdir docker-demo-with-django && cd docker-demo-with-django
$ mkdir app && cd app

Créer Pipfile dans l'application

$ vi Pipfile

/app/Pipfile

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
Django = "==3.1"

[requires]
python_version = "3.7.5"

Introduit pipenv

Utilisez la commande suivante pour tout exécuter, de l'installation à la connexion.

$ pip install pipenv
$ pipenv install
$ pipenv shell

Début du projet Django

Utilisez la commande suivante pour démarrer le projet et démarrer le serveur.

$ django-admin.py startproject django_demo .
$ python manage.py migrate
$ python manage.py runserver

Créer un conteneur Docker

De là, nous allons configurer le conteneur Docker.

Dockerfile

Créer un Dockerfile

$ vi Dockerfile

app/Dockerfile

#Python3 de l'officiel.7 sur l'image linux alpine pull
FROM python:3.7-alpine

#Définir le répertoire de travail
WORKDIR /usr/src/app

#Définir les variables d'environnement
#Empêcher Python d'écrire sur des fichiers et des disques pyc
ENV PYTHONDONTWRITEBYTECODE 1
#Empêcher Python de mettre en mémoire tampon les E / S standard
ENV PYTHONUNBUFFERED 1

#Installation de psycopg2
RUN apk update \
    && apk add --virtual build-deps gcc python3-dev musl-dev \
    && apk add postgresql-dev \
    && pip install psycopg2 \
    && apk del build-deps

#Installez Pipenv
RUN pip install --upgrade pip \
&& pip install pipenv

#Copiez le fichier pip de l'hôte dans le répertoire de travail du conteneur
COPY ./Pipfile /usr/src/app/Pipfile

#Construire un environnement Django en installant des packages à partir de pipfile
RUN pipenv install --skip-lock --system --dev

#Copiez le répertoire actuel de l'hôte (actuellement le répertoire de l'application) dans votre répertoire de travail
COPY . /usr/src/app/

# entrypoint.courir sh
ENTRYPOINT ["/usr/src/app/entrypoint.sh"]                 

Créer docker-compose.yml

vi ./../docker-compose.yml

docker-demo-with-django/docker-compose.yml

version: '3.7'

services:
    #Le nom du service peut être défini librement
    django:
        #Depuis le répertoire de l'application`Dockerfile`Trouver
        build: ./app
        #Définissez la commande à saisir après le démarrage du service
        command: python manage.py runserver 0.0.0.0:8000
        #Paramètres des données persistantes.`host:container`Décrivez le chemin avec
        volumes:
            - ./app/:/usr/src/app/
        #Spécifiez le port à ouvrir.`host:container`Listez le port dans
        ports:
            - 8000:8000
        #Spécifiez la variable d'environnement
        environment:
            #1 est le mode de retour
            - DEBUG=1
            - SECRET_KEY=hoge
            - DATABASE_ENGINE=django.db.backends.postgresql
            - DATABASE_DB=django_db
            - DATABASE_USER=django_db_user
            - DATABASE_PASSWORD=password1234
            - DATABASE_HOST=postgres
            - DATABASE_PORT=5432
        #Spécifiez le service à connecter
        depends_on:
            - postgres

    postgres:
        #Tirez l'image du fonctionnaire
        image: postgres:11.4-alpine
        #Persistance de la base de données
        #Au début pour ne pas monter dans le répertoire hôte`./`N'attachez pas
        volumes:
            - postgres_data:/var/lib/postgresql/data
        #Créer une base de données avec les privilèges su et le même nom que l'utilisateur spécifié
        #Entrez la valeur de la même manière que celle spécifiée dans le service django
        environment:
            - POSTGRES_USER=django_db_user
            - POSTGRES_PASSWORD=password1234
            - POSTGRES_DB=django_db

#Les "volumes nommés" écrits au niveau supérieur peuvent être référencés à partir de plusieurs services
volumes:
    postgres_data:         
#!/bin/sh

if [ "$DATABASE" = "postgres" ]
then
    echo "Waiting for postgres..."

    while ! nc -z $DATABASE_HOST $DATABASE_PORT; do
      sleep 0.1
    done

    echo "PostgreSQL started"
fi

python manage.py flush --no-input
python manage.py migrate

exec "$@"

Construire et lancer

$ docker-compose up -d --build

Connectez-vous à l'URL suivante, et si vous pouvez vous connecter, la construction est terminée http://localhost:8000

Recommended Posts

[Python] Créer un environnement de développement Django avec Docker
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créez rapidement un environnement Python Django avec IntelliJ
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Construire un environnement Mysql + Python avec docker
Comment créer un environnement Django (python) sur Docker
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Créez facilement un environnement de développement avec Laragon
Créer un environnement Jupyter Lab (Python) avec Docker
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Créez un environnement de développement Python simple avec VSCode et Docker Desktop
[Linux] Créer un environnement Jenkins avec Docker
Créer une application Todo avec Django ① Créer un environnement avec Docker
Créez un environnement virtuel pour python avec pyenv
Créez un environnement Python moderne avec Neovim
Créez un environnement de développement local avec WSL + Docker Desktop pour Windows + docker-lambda + Python
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
J'ai créé un environnement de développement pour Django 3.0 avec Docker, Docker-compose, Poetry
Créer un environnement de développement Python avec Visual Studio Code
Créer un environnement de construction python3 avec Sublime Text3
Créez un environnement Django avec Vagrant en 5 minutes
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
Créez un environnement de développement Python sur votre Mac
Construire un environnement Python avec OSX Elcapitan
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Construire un environnement de développement Python sur Raspberry Pi
Créer un environnement d'exécution python avec VS Code
Obtenez un environnement de développement Python rapide avec Poetry
Créer un environnement python3 avec ubuntu 16.04
Préparer l'environnement python3 avec Docker
Construire un environnement python avec direnv
[ev3dev × Python] Construction de l'environnement de développement ev3dev
Créer un environnement Python hors ligne
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
Créer un environnement de développement Django à l'aide de pyenv-virtualenv sur Mac
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
Créez un environnement de développement python avec vagrant + ansible + fabric
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement de développement Python sur Mac OS X
Construire un environnement virtuel Python en utilisant venv (Django + MySQL ①)
Créez un environnement virtuel python avec virtualenv et virtualenvwrapper
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Un mémo sur la création d'une application Django (Python) avec Docker
Configurer un environnement de développement Python avec Sublime Text 2
Construire un environnement Django pour Win10 (avec espace virtuel)
Créer un environnement de développement d'API rapide léger à l'aide de Docker
Apprentissage de l'historique pour participer au développement d'applications d'équipe avec Python ~ Créer un environnement Docker / Django / Nginx / MariaDB ~
Créer un environnement go à l'aide de Docker
Créer un fichier deb avec Docker
Déployer l'application Django avec Docker