So richten Sie Continuous Deployment für Ihr Projekt ein: persönliche Erfahrung



Übersetzt für Sie einen Artikel von Julius Minmo über das Einrichten der kontinuierlichen Bereitstellung für Ihr Projekt. Automatisierung spart eine Menge Zeit und Mühe. Der Artikel ist vor allem für Programmieranfänger nützlich.

Kontinuierliche Bereitstellung ist eine großartige Sache. Sobald wir das Projekt festschreiben und dann alles im automatischen Modus abläuft, ist die Überwachung dieses Prozesses einfach faszinierend. In diesem Artikel werde ich zeigen, wie Sie alles für ein Heimprojekt konfigurieren können.

Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.

Skillbox empfiehlt: Der Online-Kurs Frontend Developer Profession .
Schauen wir uns zunächst das Diagramm an, in dem der Unterschied zwischen Continuous Delivery und Continuous Deployment erläutert wird.



Bei einem Heimprojekt wählen wir Continuous Deployment, da niemand außer Ihnen damit arbeitet (das Projekt) und niemand davon abhängt. Nun, da in den meisten Fällen die Änderungen sofort bereitgestellt werden sollen, liegt die Wahl auf der Hand. Wenn Sie den Prozess später ändern möchten, können Sie dies jederzeit tun.

Sie lernen Folgendes:

  • Wie erstelle ich eine Docker-Datei?
  • So laden Sie ein Projekt auf GitHub hoch.
  • So erstellen Sie automatisch ein Docker-Image auf einem Docker Hub.
  • So laden Sie automatisch ein Bild vom Wachtturm herunter und führen es aus.

Was ist erforderlich:

  • Ein grundlegendes Verständnis von Docker und Dockerfile.
  • Git installiert.
  • Konto unter <a href='https://hub.docker.com/"> Docker Hub

Server (physisch oder virtuell), auf dem Docker ausgeführt wird.

Hier sind meine GitHub- und Docker Hub- Repositorys, mit denen ich arbeite.

Warum benutze ich Docker?


Es ermöglicht die Verwendung derselben Umgebung für verschiedene Prozesse, wodurch das Auftreten von Heisenbags und das Problem "es funktioniert nur auf meinem Computer" beseitigt werden. Container sind isoliert, was aus Sicht der Cybersicherheit gut ist. Es gibt weitere Vorteile, aber meiner Meinung nach sind diese beiden die wichtigsten.

Konfigurieren Sie Dockerfile

Zuerst brauchen wir eine Docker-Datei für das Projekt. Diese Datei wird immer so genannt und hat keine Erweiterung. Es befindet sich immer im Hauptverzeichnis des Projekts.

Es beginnt mit der FROM-Anweisung, die Docker mitteilt, von welchem ​​Basisimage wir ausgehen. Sie können eine Analogie zur Malerei ziehen. Wir können uns dieses Bild als fertige Leinwand mit gemaltem Hintergrund und dem fehlenden Hauptelement der Komposition (Ihrem Programm) vorstellen.

Kopieren Sie anschließend die Projektdateien mit dem Befehl COPY ... in den Container

Sie können damit Dateien vom ursprünglichen bis zum aktuellen Speicherort abrufen - natürlich im Container.

Als nächstes müssen Sie die Abhängigkeiten installieren, dafür verwende ich Python PIP. Das Wichtigste, an das Sie sich erinnern sollten, ist das Ausführen von Befehlen in einem Container mit RUN.

Aus Python: 3.7
KOPIEREN ..
RUN pip install -r Anforderungen.txt

Es ist einfach, oder? Jetzt können Sie das Programm im Container ausführen.

CMD ["Python", "./my_script.py"]

Nun ist es soweit, Sie sind mit der Docker-Datei fertig und können das Bild und den Container manuell erstellen. Überspringen Sie jetzt einfach diesen Moment.

Jetzt erstellen wir ein Repository in GitHub, aber denken Sie daran, dass die Zeile "Dieses Repository mit einer README-Datei initialisieren" nicht berührt werden muss.



Kopieren Sie nun die URL.



Öffnen Sie cmd / shell des Projektstammverzeichnisses. Jetzt müssen Sie das Repository initialisieren, Dateien hinzufügen, den Remote-Modus konfigurieren, Dateien festschreiben und das Projekt an GitHub senden.

git init git add * git remote add origin https://github.com/<user>/<repository>.git git commit -a -m "Make Dockerfile ready for CD" git push -u origin master 

Wenn alles in Ordnung ist, sieht das GitHub-Repository folgendermaßen aus:



Wir sind auf halbem Weg zum Erfolg!

Jetzt müssen Sie GitHub mit dem Docker Hub verbinden. Gehen Sie dazu zu Ihren Kontoeinstellungen.



Scrollen Sie nach unten und verbinden Sie sich.



Erstellen Sie nun das Repository im Docker Hub.



Benennen Sie Ihr Repo und klicken Sie auf das GitHub- oder Bitbucket-Symbol. Dann wählen wir die Organisation (normalerweise Ihren Spitznamen) und den Namen des Projekts aus. Falls gewünscht, können die Einstellungen geändert werden.



Nun, jetzt der letzte Schritt - hier brauchen wir Wachtturm auf der Zielmaschine. Dies ist ein Programm, mit dem Sie den Prozess automatisieren können. Wenn ein Update angezeigt wird, entfernt der Wachtturm den ursprünglichen Container und erstellt einen Container aus einem neuen Image mit denselben Einstellungen.

Die gute Nachricht ist, dass Sie Watchtower mit Docker installieren können. Dazu müssen Sie den folgenden Befehl in das Terminal eingeben:

 docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower 

Und jetzt starten wir den Container für unser Projekt!

 docker run -d --name <my-project> <username>/<my-project> 

-d ermöglicht es dem Programm, im Hintergrund zu arbeiten, sodass es nicht geschlossen wird, wenn Sie das Terminal schließen.

Wenn Sie ein Commit an das GitHub-Repository senden, erstellt der Docker Hub automatisch ein Docker-Image. Dann wird der Wachtturm mit ihm interagieren.

Für die Tests können Sie Travis CI verwenden. Sie können hier darüber lesen, aber unter dem Strich fügen Sie Ihrem Repository eine weitere Datei hinzu, die Anweisungen für einen externen Server zum Durchführen von Komponententests oder andere Anweisungen enthält.

Skillbox empfiehlt:

Source: https://habr.com/ru/post/de439632/


All Articles