c't 12/2019
S. 166
Praxis
Django mit Docker
Aufmacherbild
Bild: Albert Hulm

Schlange im Wal

Django-Webanwendungen in Docker-Containern betreiben

Dass sich Django an „Profis mit Deadlines“ richtet, zeigt sich auch, wenn man die Python-Webapps in Docker-Container verpacken will. Dafür müssen nämlich gleich drei Container Hand in Hand arbeiten. Wir zeigen, wie Sie das einrichten, ohne Ihre Deadline zu verpassen.

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.