Einfache Konstruktion der Docker + Django-Entwicklungsumgebung

Überblick

Dieser Artikel zielt darauf ab, eine Entwicklungsumgebung für Django mit Dcoker zu erstellen, ohne Python und Django auf dem lokalen Computer zu installieren. Es gibt zwei Möglichkeiten, eine Umgebung mithilfe eines Containers zu erstellen: Die eine besteht darin, nur Dockerfile zu verwenden, und die andere darin, Docker Compose zu verwenden. Dieser Artikel beschreibt die erstere.

Bitte lesen Sie den folgenden Artikel für letzteres. ⇒ Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung

Wie der Titel schon sagt, besteht der Zweck der Datenbank darin, den Django-Standard SQLite3 so zu verwenden, wie er ist, weil der Zweck darin besteht, eine Umgebung zu erstellen, die einfach, leicht und sofort funktioniert. Wenn Sie MariaDB oder PostgreSQL verwenden möchten, lesen Sie bitte die offizielle Dcoker-Dokumentation.

Annahme

Wir gehen davon aus, dass Windows und Mac mit Docker Desktop installiert sind oder Linux mit Docker Engine.

Die Befehle in diesem Artikel werden auf dem Mac-Terminal ausgeführt. Wenn jedoch Docker Desktop installiert ist, können ähnliche Befehle anscheinend an der Windows-Eingabeaufforderung ausgeführt werden.

Über das offizielle Bild

Es gibt ein offizielles Django-Repository auf Docker Hub, aber dieses ist deprecized, wie oben im TOP angegeben, und es wurde seit über 3 Jahren aufgegeben. https://hub.docker.com/_/django

Ich habe versucht, dieses Docker-Image so zu verwenden, wie es ist, aber ich konnte es nicht einmal für Lernzwecke verwenden, da ich bei der Projekterstellung gestolpert bin. Ich denke, es ist besser, ehrlich als etwas aufzugeben, das es nicht gibt.

Erstellen Sie einen einzelnen Container nur mit Dockerfile

1. Erstellen Sie ein Arbeitsverzeichnis

Verwenden Sie die Dcoker-Datei, um eine Django-Entwicklungsumgebung mit einem einzelnen Docker-Container zu erstellen.

Erstellen Sie ein beliebiges Arbeitsverzeichnis auf dem lokalen Computer und erstellen Sie eine Datei mit dem Namen "Dockerfile", "require.txt" und ein Verzeichnis mit einem beliebigen Namen (hier src). Masu).

Dockerfile
requirements.txt
src/

2. Bearbeiten Sie die Docker-Datei und die Anforderungen.txt

Bearbeiten Sie den Inhalt der Docker-Datei wie folgt.

Dockerfile


FROM python: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

Um den obigen Inhalt basierend auf dem Python Docker-Image (basierend auf Linux namens Debian) kurz zu erläutern, erstellen Sie zunächst ein Verzeichnis mit dem Namen code direkt unter dem Stammverzeichnis und beschreiben Sie es dann in der Datei require.txt. Der Inhalt besteht darin, das Paket mit dem Befehl pip zu installieren.

Python3 wird nicht mit einem Yaml-Modul geliefert, daher ist es eine gute Idee, auch "pyyaml" zu installieren. Ohne das yaml-Modul kann es zu einem Fehler kommen, wenn dumpdata / loaddata in Django.

Der Verzeichnisname kann ein anderer Name als code sein.

3. Erstellen Sie ein Docker-Image

Führen Sie den Befehl "Docker Build" in dem Verzeichnis aus, in dem Dockerfile und require.txt vorhanden sind.

$ docker build -t django_s .
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
django_s            latest              0d5d29c3eef9        4 seconds ago       922MB

Die Option -t ist eine Option zum Angeben des Bildnamens und des Tags. Der Bildname ist beliebig und spielt keine Rolle. Hier ist es django_s. Vergessen Sie nicht das letzte "." (Punkt).

Vergewissern Sie sich nach dem Ausführen des Befehls "Docker Build", dass das Image normal mit dem Befehl "Docker Images" erstellt wurde.

4. Erstellen und starten Sie einen Container

Führen Sie den Befehl "Docker ausführen" aus, um den Container aus dem im vorherigen Abschnitt erstellten Docker-Image zu erstellen und zu starten.

$ docker run -itd -p 8000:8000 -v /Users/dev_user/django_test/src:/code --name django_s_test django_s
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
1ea546d25f3e        django_s            "python3"           11 seconds ago      Up 10 seconds       0.0.0.0:8000->8000/tcp   django_s_test

Die Option -it ist eine Option, die die Standardeingabe / -ausgabe vermittelt. Ohne sie endet der Container sofort nach dem Start.

Die Option -d ist eine Hintergrundausführungsoption. Ohne diese Option wird die Eingabeaufforderung während der Befehlsausführung nicht zurückgegeben. Stattdessen wartet sie im interaktiven Python-Modus auf Eingaben.

Die Option -p ist eine Portweiterleitungsoption. Verbinden Sie Port 8000 auf Ihrem lokalen Computer mit Port 8000 auf Ihrem Container.

Die Option -v ist eine Option zum Mounten des Verzeichnisses auf Ihrem lokalen Computer im Container. Hier wird das in Abschnitt 1-1 erstellte Verzeichnis src im Verzeichnis _ / code_ des Containers bereitgestellt. Wenn es auf der Containerseite ein Update in _ / code_ gibt, wird es im Verzeichnis src wiedergegeben, und wenn es auf der Seite des lokalen Computers ein Update in src gibt, wird es im Verzeichnis _ / code_ wiedergegeben. Schreiben Sie den Verzeichnispfad entsprechend dem Pfad Ihres lokalen Computers neu.

Die Option --name gibt den Namen des Containers an. Jeder Name ist in Ordnung. Hier ist es django_s_test.

Verwenden Sie nach dem Ausführen des Befehls "docker run" den Befehl "docker ps", um zu bestätigen, dass der Container normal gestartet wurde und der Prozess ausgeführt wird.

Sie können den laufenden Container auch im Dashboard-Fenster von Docker Desktop überprüfen. django_s_test_dashboard.png

5. Erstellen Sie ein Django-Projekt

Ab hier sind es hauptsächlich Django-Operationen, nicht Docker.

Wechseln Sie zunächst in das Verzeichnis src und rufen Sie den Befehl django-admin startproject im Container über den Befehl docker exec auf, um ein Django-Projekt zu erstellen. Hier lautet der Projektname django_prj, aber Sie können den Projektnamen natürlich beliebig ändern.

$ cd /Users/dev_user/django_test/src
$ docker exec django_s_test django-admin startproject django_prj .

Mit docker exec [Containername] können Sie jeden Befehl im Docker-Container ausführen. Der Befehl django-admin ist verfügbar, wenn Django installiert ist. Wenn Sie diesen Befehl also nicht finden können, ist es wahrscheinlich, dass docker build fehlgeschlagen ist. Stellen Sie in diesem Fall sicher, dass der Teil "pip install -r require.txt" in der Docker-Datei und der Teil "django" in der Datei "resources.txt" richtig geschrieben sind.

Wenn das Django-Projekt erfolgreich erstellt wurde, wird die Projektvorlagendatei im Verzeichnis src erstellt.

db.sqlite3
django_prj/
manage.py

6. Starten Sie den Entwicklungsserver von Django

Django verfügt über eine Entwicklungsserverfunktion, mit der Sie den Vorgang unabhängig überprüfen können, ohne einen Webserver wie Apache oder Nginx zu verwenden.

Führen Sie den Befehl python manage.py runserver im Container über den Befehl docker exec aus, genau wie beim Erstellen des Projekts.

Zum Unterbrechen drücken Sie control + c.

$ docker exec django_s_test python manage.py runserver 0.0.0.0:8000
...(Kürzung)...
Django version 3.1, using settings 'django_test.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Zur Bestätigung gehen Sie in Ihrem Browser zu "http: // localhost: 8000 /". django_s_test_rocket.png

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 vor dem Befehl "docker exec [Containername]" hinzu, um auf Django im Docker-Container zu verweisen. Es werden verschiedene Operationen ausgeführt.

Impressionen

Es gab viele Informationen zum Erstellen einer Entwicklungsumgebung für Django mit Docker, aber es gab keinen Eintrag, in dem erklärt wurde, warum das auf Docker Hub veröffentlichte offizielle Image nicht verwendet wurde und Docker und Docker Compose 2 verwendet wurden In einem Artikel gab es keinen Eintrag, in dem erwähnt wird, dass es eine Möglichkeit gibt, dies zu tun. Deshalb habe ich diesen Artikel für mich selbst erstellt, auf den ich zurückblicken kann.

Der Artikel zum Erstellen einer Entwicklungsumgebung mit Docker Compose lautet wie folgt. ⇒ Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung

Referenz

Recommended Posts

Einfache Konstruktion der Docker + Django-Entwicklungsumgebung
Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
Erstellen Sie mit Docker Compose eine Entwicklungsumgebung für Django + MySQL + nginx
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie eine Unity-Entwicklungsumgebung auf Docker
Erstellen Sie eine WAS-Ausführungsumgebung aus Docker
Erstellen Sie eine Java-Entwicklungsumgebung auf dem Mac
Erstellen Sie eine Browsertestumgebung mit Capybara in der Docker-Entwicklungsumgebung
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
[Win10] Erstellen Sie eine JSF-Entwicklungsumgebung mit NetBeans
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
[Kopieren und Einfügen] Erstellen Sie mit Docker Compose Part 2 eine Laravel-Entwicklungsumgebung
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Ubuntu-Version).
Vorlage: Erstellen Sie eine Ruby / Rails-Entwicklungsumgebung mit einem Docker-Container (Mac-Version).
WSL2 + VSCode + Docker-Entwicklungsumgebung
Erstellen Sie einen Docker-Container für einen einfachen Python-Webserver
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Erstellen Sie die Entwicklungsumgebung von Docker + Laravel PHP + Vue.j in 5 Minuten
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
Erstellen einer Docker-Umgebung mit WSL
Erstellen Sie eine Entwicklungsumgebung, um Ruby on Jets + React-Apps mit Docker zu erstellen
Ruby ① Erstellen einer Windows-Umgebung
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker
Erstellen Sie mit IntelliJ IDEA eine Entwicklungsumgebung "Spring Thorough Introduction"
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
Erstellen einer Java-Entwicklungsumgebung (für Mac)
Erstellen Sie eine XAMPP-Umgebung unter Ubuntu
Erstellen Sie mit Eclipse eine Jooby-Entwicklungsumgebung
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung
Build Go-Entwicklungsumgebung mit WSL2 + Docker Desktop + VSCode (Remote - Container)
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
Erstellen Sie eine Entwicklungsumgebung, in der die Haltepunkte von Ruby on Rails unter Windows funktionieren