Python: Django-Webanwendungen in Docker-Containern betreiben

Damit Django-Webapps im Docker-Container funktionieren, mĂĽssen gleich drei Container zusammenarbeiten. So richten Sie die Container ein.

Artikel verschenken
vorlesen Druckansicht 3 Kommentare lesen
Django-Webanwendungen in Docker-Containern betreiben

(Bild: Albert Hulm)

Lesezeit: 13 Min.
Inhaltsverzeichnis

Fürs Containern von Django-Projekten bietet der DockerHub bisher wenig brauchbare Angebote. Das liegt daran, dass Python-Webanwendungen mit Virtualenv schon seit Langem in eigenen Umgebungen laufen, die Abhängigkeiten und Bibliotheksversionen von denen des Systems trennen. Wer auf dem Webserver aber nicht nur Python-Projekte betreibt, setzt besser auf Docker-Container – auch für Django.

FĂĽr Django im Container muss ein Prozess die Anfragen aus dem Internet an Views verteilen. Die Dokumentation betont ausdrĂĽcklich, dass Djangos Development-Server dafĂĽr nicht gedacht ist. Stattdessen kommt bei Python-Anwendungen das WSGI-Protokoll zum Einsatz. Das implementieren verschiedene WSGI-Server, der Verbreitetste ist uWSGI. Django erzeugt automatisch eine wsgi.py in der Haupt-App, an die uWSGI andockt.

Der WSGI-Server kümmert sich aber trotzdem nur um die Anfragen in den Python-Code. Die üblicherweise zu einem Django-Projekt gehörenden statischen Dateien wie Bilder, CSS oder Uploads von Usern sollte unbedingt ein im Vergleich zum Development-Server schnellerer Webserver wie Nginx oder Apache ausliefern.

Das war die Leseprobe unseres heise-Plus-Artikels "Python: Django-Webanwendungen in Docker-Containern betreiben". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.