Zuvor habe ich im folgenden Artikel erklärt, wie mit Dockerfile eine Django-Entwicklungsumgebung mit einem einzelnen Container erstellt wird. Einfache Erstellung der Docker + Django-Entwicklungsumgebung
Dieses Mal werde ich die Methode mit Docker Compose beschreiben.
Wie beim letzten Mal wollen wir eine einfache Umgebung erstellen, daher werden wir den Django-Standard SQLite3 wie für die Datenbank verwenden.
Wir gehen davon aus, dass Windows und Mac mit Docker Desktop installiert sind oder Linux mit Docker Engine und Docker Compose.
Für Windows und Mac ist Docker Compose in Docker Desktop enthalten, sodass es nicht separat installiert werden muss.
Die Befehle in diesem Artikel werden auf dem Mac-Terminal ausgeführt. Wenn Docker Desktop installiert ist, können ähnliche Befehle anscheinend an der Windows-Eingabeaufforderung ausgeführt werden.
Verwenden Sie Dockerfile und docker-compose.yml, um eine Django-Entwicklungsumgebung mit mehreren Docker-Containern zu erstellen.
Erstellen Sie ein beliebiges Arbeitsverzeichnis auf dem lokalen Computer und erstellen Sie eine Datei mit den Namen "Dockerfile", "require.txt", "docker-compose.yml" und ein Verzeichnis mit einem beliebigen Namen. (Hier nennen wir es src).
Dockerfile
docker-compose.yml
requirements.txt
src/
Bearbeiten Sie den Inhalt der Docker-Datei wie folgt.
Dockerfile
FROM python:3.8.3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
Bearbeiten Sie den Inhalt von require.txt wie folgt.
requirements.txt
django
pyyaml
Bearbeiten Sie den Inhalt von docker-compose.yml wie folgt.
docker-compose.yml
version: '3'
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./src:/code
ports:
- "8000:8000"
Ich werde die Docker-Datei und die Anforderung.txt weglassen, da sie in Vorheriger Artikel erläutert werden.
Definieren Sie in docker-compose.yml
services wie Webserver, Datenbank, Mailserver usw.
Hier wird nur der Dienst web definiert.
Wenn Sie den Container mit dem Befehl "docker-compose" starten, wird der Container für jeden hier definierten Dienst gestartet.
Führen Sie den Befehl "Docker-Compose Run" in dem Verzeichnis aus, in dem sich die Docker-Datei usw. befindet.
Durch Angabe des Dienstnamens web nach run
führen Sie den Befehl django-admin start project
im Webdienst aus.
$ docker-compose run web django-admin.py startproject django_prj .
Gemäß build: .
, das im Webdienst in docker-compose.yml
beschrieben ist, wird das Image automatisch erstellt, wenn der Container nicht erstellt wird, und der Container wird zu diesem Zeitpunkt erstellt.
Sie können sehen, dass der Container im Dashboard-Fenster von Docker Desktop erstellt wurde. Wenn das Django-Projekt erfolgreich erstellt wurde, wird die Projektvorlagendatei im Verzeichnis src erstellt.
db.sqlite3
django_prj
manage.py
Führen Sie den Befehl "Docker-Compose Up" in dem Verzeichnis aus, in dem sich die Docker-Datei usw. befindet.
$ docker-compose up
Sie können sehen, dass der Container im Dashboard-Fenster von Docker Desktop gestartet wurde. Zur Bestätigung gehen Sie in Ihrem Browser zu "http: // localhost: 8000 /".
Wenn Sie die Startseite mit dem Raketenbild sehen, funktioniert das Django-Projekt ordnungsgemäß. Vielen Dank für Ihre harte Arbeit: D┼─┤Lesen Sie anschließend die offizielle Django-Dokumentation und die im Handel erhältlichen Nachschlagewerke. Wenn ein Befehl angegeben wird, fügen Sie Django im Docker-Container vor dem Befehl den Docker-Compose-Lauf [Name des Webdienstes] hinzu. Verschiedene Operationen werden für ausgeführt.
Wie bei Docker waren auch die Informationen zum Erstellen der Entwicklungsumgebung für Docker Compose und Django ein großer Erfolg, aber ich konnte nur einen Eintrag mit überspezifizierten Einstellungen für die Produktionsumgebung finden, sodass ich diesen Artikel selbst lesen kann, um darauf zurückzublicken. erstellt.
Obwohl es keinen Körper oder Deckel gibt, ist die im offiziellen Docker-Dokument erläuterte Methode zum Erstellen eines Django-Containers am einfachsten zu verstehen. Überprüfen Sie dies daher bitte.
Es gibt eine Übersetzung der Seite auf der japanischen Dokumentenseite, aber die Einstellungen können vom Original abweichen. Wenn Sie also kein Englisch lesen können, beziehen Sie sich auf das Original für die Einstellungen und übersetzen Sie die Erklärung ins Japanische. Ich denke, Sie sollten die Dokumentation überprüfen.
Recommended Posts