Menü

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.

Lesezeit: 6 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 3 Beiträge

(Bild: Albert Hulm)

Von

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.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - jederzeit kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+