paint-brush
So dockerisieren und stellen Sie Django-Anwendungen bereitvon@abrahamdahunsi
11,923 Lesungen
11,923 Lesungen

So dockerisieren und stellen Sie Django-Anwendungen bereit

von Abraham Dahunsi 15m2023/10/14
Read on Terminal Reader

Zu lang; Lesen

In diesem Tutorial haben Sie gelernt, wie Sie Django-Anwendungen mit Docker, Django und Heroku dockerisieren und bereitstellen. Sie haben gesehen, wie Docker Ihnen beim Erstellen isolierter und reproduzierbarer Umgebungen für Ihre Anwendungen helfen kann 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.
featured image - So dockerisieren und stellen Sie Django-Anwendungen bereit
Abraham Dahunsi  HackerNoon profile picture
0-item
1-item

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 django-admin 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 my_project erstellen möchten, können Sie diesen Befehl in Ihrem Terminal ausführen:


django-admin startproject my_project


Dadurch wird ein Verzeichnis namens „my_project“ mit der folgenden Struktur erstellt:



Mein Projekt/


├── manage.py


└── Projekt/


├── drin .py


├──settings.py


└── urls.py


Die Datei manage.py 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 project/ enthält die Einstellungen und Konfigurationsdateien für Ihr Projekt.


Die Datei settings.py definiert die Haupteinstellungen für Ihr Projekt, z. B. die Datenbankverbindung, die installierten Apps und die Middleware. Die Datei urls.py ordnet die URLs Ihres Projekts den Ansichten Ihrer Apps zu.


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 http://localhost:8000/ gehen, um die Standard-Django-Homepage anzuzeigen.

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:


manage.py : 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.


project/ : Ein Verzeichnis, das die Einstellungen und Konfigurationsdateien für Ihr Projekt enthält. Die Hauptdateien in diesem Verzeichnis sind:

 `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.


apps/ : 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.

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: web und db . Der web erstellt das Docker-Image aus der Docker-Datei, die wir im vorherigen Abschnitt erstellt haben. Der web stellt außerdem Port 8000 auf dem Hostcomputer bereit, sodass wir auf den Django-Entwicklungsserver zugreifen können.


Der db verwendet das offizielle PostgreSQL-Docker-Image. Der db stellt auch das postgres Verzeichnis auf dem Host-Computer im Verzeichnis /var/lib/postgresql/data im Container bereit. Dadurch wird sichergestellt, dass die Datenbankdateien zwischen Container-Neustarts bestehen bleiben.

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 http://localhost:8000/admin/ anmelden. Der Benutzername und das Passwort lauten standardmäßig admin und 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 „Neu“ neben „Repositorys“ .


– Geben Sie Ihrem Repository einen Namen, z. B. django-docker-app , und fügen Sie optional eine Beschreibung hinzu.


- 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 git status ein, um den aktuellen Status Ihres Repositorys anzuzeigen. Sie sollten etwa Folgendes sehen:


 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 git add verwenden.


- Geben Sie git add . um alle geänderten Dateien zum Festschreiben bereitzustellen. Alternativ können Sie die Dateinamen angeben, die wir bereitstellen möchten, z. B. git add Dockerfile docker-compose.yml requirements.txt .


- Geben Sie git status erneut ein, um den aktualisierten Status unseres Repositorys anzuzeigen. Sie sollten etwa Folgendes sehen:


 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 git commit verwenden.


– Geben Sie git commit -m "Add Docker configuration files" , um die bereitgestellten Änderungen mit einer Meldung zu übernehmen, die beschreibt, was wir getan haben. Alternativ können Sie das Flag -m weglassen und eine längere Nachricht in einen Editor eingeben, der nach der Eingabe git commit geöffnet wird.


- Geben Sie git status erneut ein, um den endgültigen Status unseres Repositorys anzuzeigen. Sie sollten etwa Folgendes sehen:


 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 git push verwenden.


– Geben Sie git push origin main ein, um Ihr lokales Commit in das Remote-Repository auf GitHub zu übertragen.


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 Heroku und klicken Sie auf die Schaltfläche „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 [ Heroku CLI und wählen Sie das entsprechende Installationsprogramm für unser Betriebssystem aus, z. B. Windows, Mac OS X oder Linux.


- 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 heroku --version ein, um zu überprüfen, ob die Installation erfolgreich war. Sie sollten etwa Folgendes sehen:


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 heroku login 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.


– Geben Sie heroku create django-docker-app ein, um eine neue Heroku-App mit dem Namen django-docker-app 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:


 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 heroku config:set SECRET_KEY=<your_secret_key> , um eine Umgebungsvariable für die SECRET_KEY- Einstellung unseres Django-Projekts festzulegen. Sie müssen <your_secret_key> durch eine zufällige Zeichenfolge ersetzen, die Sie mit einem Tool wie Django Secret Key Generator generieren können.


Alternativ können Sie den vorhandenen geheimen Schlüssel verwenden, den Sie in Ihrer Datei „settings.py“ haben. Dies wird jedoch aus Sicherheitsgründen nicht empfohlen.


- Geben Sie heroku addons:create heroku-postgresql:hobby-dev , 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 DATABASE_URL- Einstellung Ihres Django-Projekts festgelegt. Sie sollten etwa Folgendes sehen:

 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 PostgreSQL-curved-12345 und der URL DATABASE_URL hinzugefügt haben.


- Geben Sie heroku config ein, um die Liste der Umgebungsvariablen anzuzeigen, die Sie für Ihre Heroku-App festgelegt haben. Sie sollten etwa Folgendes sehen:


 === 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, DATABASE_URL und SECRET_KEY , die Sie in Ihren Django-Projekteinstellungen verwenden können.


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 heroku auf Heroku bereitzustellen, müssen Sie die folgenden Schritte ausführen:


- Gehen Sie im Terminal zu Ihrem Django-Projektordner und geben Sie heroku container:login ein, um sich mit dem Heroku-CLI-Tool bei der Heroku Container Registry anzumelden. Dadurch können Sie unser Docker-Image an Heroku übertragen.


- Geben Sie heroku container:push web -a django-docker-app , um Ihr Docker-Image zu erstellen und an Heroku zu übertragen. Sie müssen den Namen Ihrer Heroku-App angeben, in diesem Fall django-docker-app . Sie sollten etwa Folgendes sehen:


 === 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 heroku container:release web -a django-docker-app ein, um unser Docker-Image für unsere Heroku-App freizugeben. Sie sollten etwa Folgendes sehen:


 Releasing images web to django-docker-app... done


Dies bedeutet, dass Sie Ihr Docker-Image für Ihre Heroku-App freigegeben haben.


– Geben Sie heroku run python manage.py migrate -a django-docker-app 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:


 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 heroku open -a django-docker-app ein, um unsere bereitgestellte Webanwendung in einem Webbrowser zu öffnen. Sie sollten sehen, wie unser Django-Projekt auf Heroku läuft.


Sie haben Ihr Django-Projekt mit dem Befehl heroku erfolgreich in Heroku bereitgestellt. Jetzt können Sie Ihre Webanwendung genießen und mit anderen teilen.

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

- Docker-Dokumentation : Die offizielle Dokumentation für Docker, in der Sie Anleitungen, Tutorials, Referenzmaterialien und mehr finden.


- Django-Dokumentation : Die offizielle Dokumentation für Django, in der Sie Themen, Anleitungen, Referenzmaterialien und mehr finden.