Docker ist eine Plattform zum Erstellen, Ausführen und Verteilen von Anwendungen. Damit können Sie Ihre Anwendung und alle ihre Abhängigkeiten in einen einzigen Container packen, der dann auf jedem Computer ausgeführt werden kann, auf dem Docker installiert ist. Dies macht Docker ideal für die Bereitstellung von Webanwendungen, da Sie Ihre Anwendung problemlos von einer Umgebung in eine andere verschieben können, ohne sich um Kompatibilitätsprobleme kümmern zu müssen. Django hingegen ist ein Python-Webframework, das die Erstellung leistungsstarker und skalierbarer Webanwendungen erleichtert. Django bietet eine Reihe sofort einsatzbereiter Funktionen, z. B. ein Benutzerauthentifizierungssystem, eine Datenbankabstraktionsschicht und eine Vorlagen-Engine. Dies erleichtert den Einstieg in Django und die schnelle und einfache Erstellung komplexer Webanwendungen. Das Dockerisieren und Bereitstellen einer Django-Anwendung ist ein relativ unkomplizierter Prozess. Die wichtigsten Schritte sind: 1. Erstellen Sie eine Docker-Datei für Ihre Django-Anwendung. 2. Erstellen Sie ein Docker-Image aus Ihrer Docker-Datei. 3. Stellen Sie das Docker-Image in einer Produktionsumgebung bereit. In diesem Artikel werde ich Sie detailliert durch die Schritte zum Dockerisieren und Bereitstellen einer Django-Anwendung führen. Außerdem werde ich einige Tipps und Best Practices für die Bereitstellung von Django-Anwendungen in der Produktion geben. Voraussetzungen Um diesem Tutorial folgen zu können, benötigen Sie die folgenden Voraussetzungen: Python 3.9 oder höher Pip Docker Docker Compose Git Sie benötigen außerdem einen Cloud-Hosting-Anbieter wie AWS, Azure oder Google Cloud Platform, wenn Sie Ihre Django-Anwendung in der Produktion bereitstellen möchten. Aber für dieses Tutorial werde ich Heroku verwenden. Sobald Sie alle Voraussetzungen installiert haben, können Sie mit der Dockerisierung und Bereitstellung Ihrer Django-Anwendung beginnen! Erstellen eines Django-Projekts Um ein neues Django-Projekt zu starten, müssen Sie den Befehl verwenden. Mit diesem Befehl können Sie ein Projektverzeichnis und einige grundlegende Dateien für Ihre Django-Anwendung erstellen. Wenn Sie beispielsweise ein Projekt namens erstellen möchten, können Sie diesen Befehl in Ihrem Terminal ausführen: django-admin my_project django-admin startproject my_project Dadurch wird ein Verzeichnis namens „my_project“ mit der folgenden Struktur erstellt: Mein Projekt/ ├── manage.py └── Projekt/ ├── .py drin ├──settings.py └── urls.py Die Datei ist ein Skript, mit dem Sie verschiedene Aufgaben für Ihr Projekt ausführen können, z. B. das Ausführen des Entwicklungsservers, das Erstellen von Datenbankmigrationen und das Testen Ihres Codes. Das Verzeichnis enthält die Einstellungen und Konfigurationsdateien für Ihr Projekt. manage.py project/ Die Datei definiert die Haupteinstellungen für Ihr Projekt, z. B. die Datenbankverbindung, die installierten Apps und die Middleware. Die Datei ordnet die URLs Ihres Projekts den Ansichten Ihrer Apps zu. settings.py urls.py Nachdem Sie ein neues Django-Projekt erstellt haben, können Sie es lokal testen, indem Sie den Entwicklungsserver ausführen. Der Entwicklungsserver ist ein einfacher Webserver, der auf Ihrem Computer läuft und Ihre Projektdateien bereitstellt. Um den Entwicklungsserver zu starten, führen Sie diesen Befehl in Ihrem Terminal aus: python manage.py runserver Dadurch wird der Server standardmäßig auf Port 8000 gestartet. Anschließend können Sie Ihren Browser öffnen und zu gehen, um die Standard-Django-Homepage anzuzeigen. http://localhost:8000/ Grundstruktur und Dateien eines Django-Projekts Ein Django-Projekt besteht aus mehreren Dateien und Verzeichnissen, die die Funktionalität und das Erscheinungsbild Ihrer Webanwendung definieren. Die Hauptkomponenten eines Django-Projekts sind: : Ein Skript, das verschiedene Befehle zum Verwalten Ihres Projekts bereitstellt, z. B. zum Erstellen von Apps, zum Migrieren der Datenbank und zum Testen Ihres Codes. manage.py : Ein Verzeichnis, das die Einstellungen und Konfigurationsdateien für Ihr Projekt enthält. Die Hauptdateien in diesem Verzeichnis sind: project/ `settings.py`: A file that defines the main settings for your project, such as the database connection, the installed apps, and the middleware. You can customize this file to suit your needs and preferences. `urls.py`: A file that maps the URLs of your project to the views of your apps. You can define different URL patterns for different parts of your web application. : Ein Verzeichnis, das alle Django-Apps enthält, aus denen Ihr Projekt besteht. Jede Django-App ist ein separates Python-Paket, das eine bestimmte Funktionalität oder ein bestimmtes Feature für Ihre Webanwendung bereitstellt. Sie können Ihre eigenen Apps erstellen oder vorhandene Apps von Drittanbietern verwenden. apps/ Testen Sie das Projekt lokal Um das Projekt lokal zu testen, können Sie den Entwicklungsserver oder das von Django bereitgestellte Testframework verwenden. Der Entwicklungsserver ist ein einfacher Webserver, der auf Ihrem Computer läuft und Ihre Projektdateien bereitstellt. Das Test-Framework ist ein Tool, mit dem Sie Unit-Tests für Ihren Code schreiben und ausführen können. Um den Entwicklungsserver zu verwenden, können Sie diesen Befehl in Ihrem Terminal ausführen: python manage.py runserver Dadurch wird der Server standardmäßig auf Port 8000 gestartet. Anschließend können Sie Ihren Browser öffnen und zu „http://localhost:8000/“ gehen, um die Standard-Django-Homepage anzuzeigen. Um das Test-Framework zu verwenden, können Sie diesen Befehl in Ihrem Terminal ausführen: python manage.py test Dadurch werden alle Komponententests für Ihr Projekt ausgeführt. Wenn alle Tests erfolgreich sind, wird eine Meldung wie diese angezeigt: Ran 1 test in 0.001s Ok Wenn einer der Tests fehlschlägt, wird eine Fehlermeldung mit Einzelheiten zum Fehler angezeigt. Sie können diese Informationen zum Debuggen und Korrigieren Ihres Codes verwenden. Sobald Sie das Projekt lokal getestet haben und mit den Ergebnissen zufrieden sind, können Sie es in einer Produktionsumgebung bereitstellen. Dockerisierung des Django-Projekts Was ist eine Docker-Datei? Eine Docker-Datei ist eine Textdatei, die Anweisungen zum Erstellen eines Docker-Images enthält. Ein Docker-Image ist ein eigenständiges ausführbares Paket, das alles enthält, was zum Ausführen einer Anwendung erforderlich ist: Code, Laufzeit, Systemtools, Systembibliotheken und Einstellungen. Um eine Docker-Datei zu erstellen, müssen Sie das Basis-Image, die auszuführenden Befehle zur Installation der erforderlichen Pakete und die auszuführenden Befehle zum Starten der Anwendung angeben. Beispiel-Dockerdatei für ein Django-Projekt Hier ist eine Beispiel-Dockerdatei für ein Django-Projekt: FROM python:3.9 #Install Django and other required packages RUN pip install django # Copy the Django project files into the image COPY ./app # Set the working directory WORKDIR /app # Start the Django development server CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] Diese Docker-Datei erstellt ein Docker-Image, das Python 3.9, Django und die Django-Projektdateien enthält. Das Image wird so konfiguriert, dass der Django-Entwicklungsserver auf Port 8000 gestartet wird. Was ist eine docker-compose.yml-Datei? Eine docker-compose.yml-Datei ist eine YAML-Datei, die die Dienste definiert, aus denen eine Docker-Anwendung besteht. Ein Dienst kann ein einzelner Docker-Container oder eine Gruppe von Docker-Containern sein. Um eine docker-compose.yml-Datei für ein Django-Projekt zu erstellen, müssen Sie den Webdienst und den Datenbankdienst definieren. Der Webdienst führt die Django-Anwendung aus und der Datenbankdienst führt die Datenbank aus, die die Django-Anwendung verwendet. Beispieldatei „docker-compose.yml“ für ein Django-Projekt Hier ist eine Beispieldatei docker-compose.yml für ein Django-Projekt: version: "3.9" services: web: build: ports: -"8000:8000" volumes -./:/app db: image: postgres:14.0-alpine volumes: -./postgres:/var/lib/postgresql/data Diese docker-compose.yml-Datei definiert zwei Dienste: und . Der erstellt das Docker-Image aus der Docker-Datei, die wir im vorherigen Abschnitt erstellt haben. Der stellt außerdem Port 8000 auf dem Hostcomputer bereit, sodass wir auf den Django-Entwicklungsserver zugreifen können. web db web web Der verwendet das offizielle PostgreSQL-Docker-Image. Der stellt auch das Verzeichnis auf dem Host-Computer im Verzeichnis im Container bereit. Dadurch wird sichergestellt, dass die Datenbankdateien zwischen Container-Neustarts bestehen bleiben. db db postgres /var/lib/postgresql/data Erstellen und Ausführen der Docker-Container Um die Docker-Container zu erstellen und auszuführen, können wir den folgenden Befehl verwenden: docker-compose up -d Dieser Befehl erstellt die Docker-Images für die Dienste „web“ und „db“, sofern diese noch nicht vorhanden sind. Der Befehl startet dann die Docker-Container für die Dienste „web“ und „db“. Lokales Testen des Docker-Django-Projekts Sobald die Docker-Container ausgeführt werden, können wir das Dockerized Django-Projekt lokal mit einem Webbrowser testen. Öffnen Sie einen Webbrowser und navigieren Sie zu „http://localhost:8000“. Sie sollten nun die Django-Entwicklungsseite sehen können. Sie können sich auch auf der Django-Administratorseite unter anmelden. Der Benutzername und das Passwort lauten standardmäßig und . http://localhost:8000/admin/ admin admin Bereitstellung des Django-Projekts Jetzt ist es an der Zeit, Ihr Django-Projekt mit Git, GitHub und Heroku auf einer Cloud-Plattform bereitzustellen. Sie testen Ihre bereitgestellte Webanwendung auch mithilfe eines Webbrowsers. Was ist Git und warum brauchen wir es? Git ist ein Softwaretool, das Ihnen bei der Verwaltung des Quellcodes Ihres Projekts helfen kann. Damit können Sie die an Ihrem Code vorgenommenen Änderungen verfolgen, mit anderen Entwicklern zusammenarbeiten und auf frühere Versionen zurückgreifen, wenn etwas schief geht. Mit Git können Sie Ihren Code auch an Remote-Repositorys wie GitHub übertragen, wo Sie Ihren Code speichern und mit anderen teilen können. Wie erstelle ich ein GitHub-Repository und pushe unseren Code auf GitHub? Bitte ignorieren Sie Folgendes, wenn Sie bereits ein GitHub-Repository erstellt haben. Um ein GitHub-Repository für Ihr Django-Projekt zu erstellen, müssen Sie die folgenden Schritte ausführen: - Erstellen Sie ein kostenloses Konto auf GitHub - Gehen Sie zu Ihrer Profilseite und klicken Sie auf die Schaltfläche neben . „Neu“ „Repositorys“ – Geben Sie Ihrem Repository einen Namen, z. B. , und fügen Sie optional eine Beschreibung hinzu. django-docker-app - Klicken Sie auf die Schaltfläche . Repository erstellen Jetzt haben Sie ein leeres Repository auf GitHub erstellt. Um Ihren Code in dieses Repository zu übertragen, müssen Sie den Befehl „git“ in Ihrem Terminal verwenden. Ich gehe davon aus, dass Sie Git bereits auf Ihrem lokalen Computer installiert und ein Git-Repository in Ihrem Django-Projektordner initialisiert haben. Wenn nicht, befolgen Sie dazu die . offizielle Dokumentation Um Ihren Code an GitHub zu übertragen, müssen Sie die folgenden Schritte ausführen: - Gehen Sie im Terminal zu Ihrem Django-Projektordner und geben Sie ein, um den aktuellen Status Ihres Repositorys anzuzeigen. Sie sollten etwa Folgendes sehen: git status On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt no changes added to commit (use "git add" and/or "git commit -a") Das bedeutet, dass Sie über einige geänderte Dateien verfügen, die nicht für die Festschreibung bereitgestellt werden. Um sie für den Commit bereitzustellen, müssen Sie den Befehl verwenden. git add - Geben Sie . um alle geänderten Dateien zum Festschreiben bereitzustellen. Alternativ können Sie die Dateinamen angeben, die wir bereitstellen möchten, z. B. Dockerfile . git add git add docker-compose.yml requirements.txt - Geben Sie erneut ein, um den aktualisierten Status unseres Repositorys anzuzeigen. Sie sollten etwa Folgendes sehen: git status On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt Das bedeutet, dass Sie über einige Änderungen verfügen, die für die Festschreibung bereitgestellt werden. Um sie festzuschreiben, müssen Sie den Befehl verwenden. git commit – Geben Sie , um die bereitgestellten Änderungen mit einer Meldung zu übernehmen, die beschreibt, was wir getan haben. Alternativ können Sie das Flag weglassen und eine längere Nachricht in einen Editor eingeben, der nach der Eingabe geöffnet wird. git commit -m "Add Docker configuration files" -m git commit - Geben Sie erneut ein, um den endgültigen Status unseres Repositorys anzuzeigen. Sie sollten etwa Folgendes sehen: git status On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean Das bedeutet, dass Sie über einen Commit verfügen, der noch nicht in das Remote-Repository übertragen wurde. Um es zu pushen, müssen Sie den Befehl verwenden. git push – Geben Sie ein, um Ihr lokales Commit in das Remote-Repository auf GitHub zu übertragen. git push origin main Alternativ können Sie den Remote-Namen und den Zweignamen angeben, den Sie übertragen möchten, z. B. . git push origin main Möglicherweise werden Sie aufgefordert, Ihren GitHub-Benutzernamen und Ihr Passwort einzugeben oder ein persönliches Zugriffstoken zu verwenden, um sich zu authentifizieren. - Gehen Sie zu Ihrer GitHub-Repository-Seite und aktualisieren Sie sie. Sie sollten Ihren Code und die Commit-Nachricht auf der Seite sehen. Sie haben Ihren Code erfolgreich an GitHub übertragen. Jetzt können Sie mit dem nächsten Schritt fortfahren, nämlich der Bereitstellung Ihres Django-Projekts auf Heroku. Was ist Heroku und warum brauchen Sie es? Heroku ist eine Cloud-Plattform, mit der Sie Webanwendungen bereitstellen, verwalten und skalieren können. Es unterstützt verschiedene Programmiersprachen, Frameworks und Datenbanken wie Python, Django und PostgreSQL. Es bietet außerdem verschiedene Funktionen und Add-ons, die unsere Webentwicklungserfahrung verbessern, wie z. B. Protokollierung, Überwachung, Caching, Sicherheit usw. Sie benötigen Heroku, weil es Ihren Bereitstellungsprozess einfacher und schneller macht. Sie können Heroku verwenden, um Ihr Django-Projekt bereitzustellen, ohne sich um die zugrunde liegende Infrastruktur wie Server, Netzwerke oder Betriebssysteme kümmern zu müssen. Sie können Heroku auch verwenden, um Ihre Webanwendung entsprechend dem Datenverkehr und der Nachfrage zu skalieren. Heroku übernimmt für Sie alle Komplexitäten und Herausforderungen der Webbereitstellung. Wie erstelle ich ein Heroku-Konto und installiere das Heroku CLI-Tool? Um ein Heroku-Konto zu erstellen, müssen Sie die folgenden Schritte ausführen: - Gehen Sie zu und klicken Sie auf die Schaltfläche . Heroku „Anmelden“ - Geben Sie die erforderlichen Informationen wie Name, E-Mail, Passwort usw. ein. - Wählen Sie eine primäre Entwicklungssprache, z. B. Python. - Klicken Sie auf die Schaltfläche . „Kostenloses Konto erstellen“ - Überprüfen Sie unsere E-Mails und klicken Sie auf den Link, um unser Konto zu bestätigen. Jetzt haben Sie ein kostenloses Heroku-Konto erstellt. Um das Heroku CLI-Tool zu installieren, müssen Sie die folgenden Schritte ausführen: - Gehen Sie zu [ und wählen Sie das entsprechende Installationsprogramm für unser Betriebssystem aus, z. B. Windows, Mac OS X oder Linux. Heroku CLI - Laden Sie das Installationsprogramm herunter, führen Sie es aus und befolgen Sie die Anweisungen auf dem Bildschirm. - Öffnen Sie ein Terminal und geben Sie ein, um zu überprüfen, ob die Installation erfolgreich war. Sie sollten etwa Folgendes sehen: heroku --version heroku/7.59.0 win32-x64 node-v12.21.0 Jetzt haben Sie das Heroku CLI-Tool auf Ihrem lokalen Computer installiert. Mit diesem Tool können Sie vom Terminal aus mit Heroku interagieren. Wie erstelle ich eine Heroku-App und konfiguriere die erforderlichen Einstellungen? Um eine Heroku-App für unser Django-Projekt zu erstellen, müssen wir die folgenden Schritte ausführen: - Gehen Sie im Terminal zu Ihrem Django-Projektordner und geben Sie ein, um sich mit dem Heroku CLI-Tool bei Ihrem Heroku-Konto anzumelden. Möglicherweise werden Sie aufgefordert, Ihre E-Mail-Adresse und Ihr Passwort einzugeben oder sich mit einem Webbrowser zu authentifizieren. heroku login – Geben Sie ein, um eine neue Heroku-App mit dem Namen zu erstellen. Alternativ können Sie den Namen weglassen und Heroku einen zufälligen Namen für Sie generieren lassen. Sie sollten etwa Folgendes sehen: heroku create django-docker-app django-docker-app Creating ⬢ django-docker-app... done https://django-docker-app.herokuapp.com/ | https://git.heroku.com/django-docker-app.git Das bedeutet, dass Sie eine neue Heroku-App mit einer Web-URL und einer Git-URL erstellt haben. Über die Web-URL können Sie auf Ihre bereitgestellte Webanwendung zugreifen, und über die Git-URL können Sie Ihren Code an Heroku übertragen. - Geben Sie , um eine Umgebungsvariable für die Einstellung unseres Django-Projekts festzulegen. Sie müssen durch eine zufällige Zeichenfolge ersetzen, die Sie mit einem Tool wie generieren können. heroku config:set SECRET_KEY=<your_secret_key> SECRET_KEY- <your_secret_key> Django Secret Key Generator Alternativ können Sie den vorhandenen geheimen Schlüssel verwenden, den Sie in Ihrer Datei haben. Dies wird jedoch aus Sicherheitsgründen nicht empfohlen. „settings.py“ - Geben Sie , um Ihrer Heroku-App ein kostenloses PostgreSQL-Datenbank-Add-on hinzuzufügen. Dadurch wird eine neue Datenbank für Ihr Django-Projekt erstellt und eine Umgebungsvariable für die Einstellung Ihres Django-Projekts festgelegt. Sie sollten etwa Folgendes sehen: heroku addons:create heroku-postgresql:hobby-dev DATABASE_URL- Creating heroku-postgresql:hobby-dev on ⬢ django-docker-app... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-curved-12345 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentation Das bedeutet, dass Sie ein PostgreSQL-Datenbank-Add-on mit dem Namen und der URL hinzugefügt haben. PostgreSQL-curved-12345 DATABASE_URL - Geben Sie ein, um die Liste der Umgebungsvariablen anzuzeigen, die Sie für Ihre Heroku-App festgelegt haben. Sie sollten etwa Folgendes sehen: heroku config === django-docker-app Config Vars DATABASE_URL: postgres://<username>: <password>@<host>:<port>/<database> SECRET_KEY: <your_secret_key> Das bedeutet, dass Sie über zwei Umgebungsvariablen verfügen, und , die Sie in Ihren Django-Projekteinstellungen verwenden können. DATABASE_URL SECRET_KEY Nachdem Sie nun eine Heroku-App erstellt und die erforderlichen Einstellungen für unser Django-Projekt konfiguriert haben, können Sie mit dem nächsten Schritt fortfahren, nämlich der Bereitstellung Ihres Django-Projekts für Heroku. Wie stellen Sie Ihr Django-Projekt mit dem Befehl „ heroku “ in Heroku bereit? Um unser Django-Projekt mit dem Befehl auf Heroku bereitzustellen, müssen Sie die folgenden Schritte ausführen: heroku - Gehen Sie im Terminal zu Ihrem Django-Projektordner und geben Sie ein, um sich mit dem Heroku-CLI-Tool bei der Heroku Container Registry anzumelden. Dadurch können Sie unser Docker-Image an Heroku übertragen. heroku container:login - Geben Sie , um Ihr Docker-Image zu erstellen und an Heroku zu übertragen. Sie müssen den Namen Ihrer Heroku-App angeben, in diesem Fall . Sie sollten etwa Folgendes sehen: heroku container:push web -a django-docker-app django-docker-app === Building web (Dockerfile) Sending build context to Docker daemon 1.024kB Step 1/9 : FROM python:3.9-slim ---> 7f5b6ccd03e9 Step 2/9 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 64b5d0e40a22 Step 3/9 : RUN mkdir /code ---> Using cache ---> 4d8c638f2b6c Step 4/9 : WORKDIR /code ---> Using cache ---> e69c02a028cd Step 5/9 : COPY requirements.txt /code/ ---> Using cache ---> 8f0f3e0f2d8c Step 6/9 : RUN pip install -r requirements.txt ---> Using cache ---> 0f7b497d81ed Step 7/9 : COPY . /code/ ---> Using cache ---> c0a8e9a32b16 Step 8/9 : EXPOSE 8000 ---> Using cache ---> a1d36a4a2da4 Step 9/9 : CMD ["gunicorn", "django_docker.wsgi", "--bind", "0.0.0.0:8000"] ---> Using cache ---> f7f3c0418a1d Successfully built f7f3c0418a1d Successfully tagged registry.heroku.com/django-docker-app/web:latest === Pushing web (Dockerfile) The push refers to repository [registry.heroku.com/django-docker-app/web] f7f3c0418a1d: Pushed latest: digest: sha256:6cbbf22cf6aa60e0343e6d8e7c4c2eeb2e cb8fd5e82a42dfe5f4aeeb15af89ec size: 528 Your image has been successfully pushed. You can now release it with the 'container:release' command. Das bedeutet, dass Sie Ihr Docker-Image erstellt und an Heroku übertragen haben. - Geben Sie ein, um unser Docker-Image für unsere Heroku-App freizugeben. Sie sollten etwa Folgendes sehen: heroku container:release web -a django-docker-app Releasing images web to django-docker-app... done Dies bedeutet, dass Sie Ihr Docker-Image für Ihre Heroku-App freigegeben haben. – Geben Sie ein, um die Datenbankmigrationen auf Ihrer Heroku-App auszuführen. Dadurch werden die erforderlichen Tabellen und Indizes für Ihr Django-Projekt in der PostgreSQL-Datenbank erstellt. Sie sollten etwa Folgendes sehen: heroku run python manage.py migrate -a django-docker-app Running python manage.py migrate on ⬢ django-docker-app... up, run.1234 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, polls Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK Das bedeutet, dass Sie die Datenbankmigrationen auf Ihrer Heroku-App ausgeführt haben. - Geben Sie ein, um unsere bereitgestellte Webanwendung in einem Webbrowser zu öffnen. Sie sollten sehen, wie unser Django-Projekt auf Heroku läuft. heroku open -a django-docker-app Sie haben Ihr Django-Projekt mit dem Befehl erfolgreich in Heroku bereitgestellt. Jetzt können Sie Ihre Webanwendung genießen und mit anderen teilen. heroku Abschluss In diesem Tutorial haben Sie gelernt, wie Sie Django-Anwendungen mit Docker, Django und Heroku dockerisieren und bereitstellen. Sie haben gesehen, wie Docker Ihnen dabei helfen kann, isolierte und reproduzierbare Umgebungen für Ihre Anwendungen zu erstellen, und wie Heroku den Bereitstellungsprozess vereinfachen kann. Sie haben außerdem gelernt, wie Sie mit Docker Compose mehrere Container und Dienste verwalten und wie Sie Ihre Django-Einstellungen für verschiedene Umgebungen konfigurieren. Das Dockerisieren und Bereitstellen von Django-Anwendungen kann viele Vorteile haben, wie zum Beispiel: - Schnellere Entwicklungs- und Testzyklen - Einfachere Zusammenarbeit und gemeinsame Nutzung von Code - Konsistente und zuverlässige Leistung auf allen Plattformen - Skalierbarkeit und Flexibilität der Ressourcen - Sicherheit und Isolierung von Abhängigkeiten Lesen Sie weiter: CI/CD ist für eine schnelle und zuverlässige Softwarebereitstellung unerlässlich. Um Ihre CI/CD-Pipeline für maximale Effizienz zu optimieren, wählen Sie die richtigen Tools, optimieren Sie Ihren Workflow, nutzen Sie automatisierte Tests und Qualitätssicherung, parallelisieren Sie Builds, nutzen Sie Überwachungs- und Feedbackschleifen, führen Sie Sicherheitsprüfungen durch und verbessern Sie Ihre Pipeline kontinuierlich. Mehr lesen Lesen Sie auch: Alles, was wir auf der DockerCon 2023 gelernt haben. Lesen Sie mehr Zusätzliche Ressourcen - : Die offizielle Dokumentation für Docker, in der Sie Anleitungen, Tutorials, Referenzmaterialien und mehr finden. Docker-Dokumentation - : Die offizielle Dokumentation für Django, in der Sie Themen, Anleitungen, Referenzmaterialien und mehr finden. Django-Dokumentation