Zum Hauptinhalt springen

Einfache Entwicklungsabhängigkeitsverwaltung mit Podman und Tent

· 5 Minuten Lesezeit

podman logo

Einfache Entwicklungsabhängigkeitsverwaltung mit Podman und Tent

Von Farhan Hasin Chowdhury GitHub

Die Installation und Verwaltung von Entwicklungsabhängigkeiten für verschiedene Projekte ist eine lästige Aufgabe, und eine Sache, die Ihren täglichen Arbeitsablauf verbessern kann, ist die Verwendung von Containern.

Tent ist ein CLI-Tool zum Ausführen von Entwicklungsabhängigkeiten wie MySQL, Mongo, ElasticSearch usw. in vorkonfigurierten Containern mit einfachen Einzeilern.

Laufende Container können über ihre exponierten Ports erreicht und mit jeder anderen Anwendung auf Ihrem System gekoppelt werden.

Das Starten eines Services wie mysql ist so einfach wie die Ausführung von tent start mysql und Sie müssen nie wieder darauf zurückblicken.

Aber mysql ist nicht der einzige verfügbare Service. Eine Liste aller verfügbaren Services finden Sie unter: services.go

Tent ist stark von tighten/takeout inspiriert und ist ein experimentelles Projekt. Daher sollte Vorsicht geboten sein, wenn Sie es in einer kritischen Umgebung verwenden.

Abhängigkeiten

  • Linux
  • Podman installiert
  • Podman System Service läuft

Wenn Sie Podman installiert haben, können Sie den System Service wie folgt starten:

## startet den podman system service
systemctl --user start podman.socket

## aktiviert den podman system service, damit er nicht bei jedem Neustart beendet wird
systemctl --user enable podman.socket

## stoppt den podman system service
systemctl --user stop podman.socket

## deaktiviert den podman system service, damit er nicht bei jedem Neustart startet
systemctl --user disable podman.socket

Tent geht davon aus, dass Sie den Service im Non-Root-Modus ausführen, daher ist das --user Argument in den obigen Befehlen notwendig.

Installation

Besuchen Sie die Tent Release-Seite und laden Sie die tent Binärdatei auf Ihren Computer herunter. Öffnen Sie Ihr Terminal dort, wo Sie die Datei heruntergeladen haben, und führen Sie folgende Befehle aus:

chmod +x ./tent

sudo mv ./tent /usr/local/bin

Jetzt sollte der tent Befehl überall in Ihrem System verfügbar sein.

Aus dem Quellcode erstellen

Wenn Sie auf einem Fedora-System sind, sollte der folgende Befehl die notwendigen Entwicklungsabhängigkeiten installieren.

sudo dnf groupinstall "Development Tools" -y && sudo dnf install golang btrfs-progs-devel gpgme-devel device-mapper-devel -y

Und auf einem Ubuntu-System sollte der folgende Befehl die notwendigen Entwicklungsabhängigkeiten installieren.

sudo apt install build-essential golang-go libbtrfs-dev libgpgme-dev libdevmapper-dev -y

Wenn Sie auf einem anderen System sind, können Sie nach äquivalenten Paketen in den jeweiligen Paket-Repositories suchen.

Erstellen und installieren Sie die Anwendung nun wie folgt:

git clone https://github.com/fhsinchy/tent.git ~/tent

cd ~/tent

make install

Verwendung

Die tent Binärdatei hat folgende Befehle:

  • tent start <service name> - startet einen Container für den angegebenen Service
  • tent stop <service name> - stoppt und entfernt einen Container für den angegebenen Service
  • tent list - listet alle laufenden Container auf

Die meisten Services in tent nutzen Volumes zum Persistieren von Daten, so dass selbst wenn Sie einen Service stoppen, seine Daten in einem Volume für die spätere Verwendung persistiert werden. Diese Volumes können durch die Ausführung von podman volume ls aufgelistet und wie jedes andere Podman-Volume verwaltet werden.

Einen Service starten

Die allgemeine Syntax für den start Befehl ist wie folgt:

tent start <service name>

## startet mysql und fragt Sie bei Bedarf nach
tent start mysql

## startet redis und mongo und fragt Sie bei Bedarf nach
tent start redis mongo

Service mit Standardkonfiguration starten

Das --default Flag für den start Befehl kann verwendet werden, um alle Eingabeaufforderungen zu überspringen und einen Service mit Standardkonfiguration zu starten

tent start <service name> --default

## startet mysql mit der Standardkonfiguration
tent start mysql --default

## startet redis und mongo mit Standardkonfiguration
tent start redis mongo --default

Einen Service stoppen

Die allgemeine Syntax für den stop Befehl ist wie folgt:

tent stop <service name>

## stoppt mysql und entfernt den Container
## fragt Sie, wenn mehrere Container gefunden werden
tent stop mysql

## stoppt alle mysql Container und entfernt sie
tent stop mysql --all

## stoppt redis und mongo und entfernt dann die Container.
## fragt Sie, wenn mehrere Container für einen der angegebenen Services gefunden werden.
tent stop redis mongo

## stoppt alle redis und mongo Container und entfernt sie dann
tent stop redis mongo --all

Alle Services stoppen

Das --all Flag für den stop Befehl kann verwendet werden, um alle laufenden Tent-Container auf einmal zu stoppen und zu entfernen

tent stop --all

Mehrere Versionen ausführen

Da alle Services in Containern laufen, können Sie mehrere Versionen desselben Services starten, solange Sie den Port unterschiedlich halten.

Führen Sie tent start mysql zweimal aus; das erste Mal verwenden Sie das --default Flag, und das zweite Mal geben Sie 5.7 als Tag und 3307 als Host-Port an.

Wenn Sie jetzt tent list ausführen, sehen Sie beide Services gleichzeitig laufen.

+--------------+----------------+---------------+---------------+
| CONTAINER | Image | PORTS |
+--------------+----------------+---------------+---------------+
| tent-mysql-5.7-3307 | docker.io/mysql:5.7 | 3307->3306/tcp |
| tent-mysql-latest-3306 | docker.io/mysql:5.7 | 3306->3306/tcp |
+--------------+----------------+---------------+---------------+

Container-Verwaltung

Von tent gestartete Container sind reguläre Container mit einigen voreingestellten Konfigurationen. Sie können also reguläre podman Befehle wie ls, inspect, logs usw. auf ihnen verwenden. Obwohl tent mit einem list Befehl kommt, führt die Verwendung der podman Befehle zu informativeren Ergebnissen. Das Ziel von tent ist es, Plug-and-Play-Container bereitzustellen, nicht eine vollwertige podman CLI zu werden.

Mitwirkung

Tent ist ein Open-Source-Projekt und Beiträge sind mehr als willkommen. Wenn Sie ein Go-Programmierer sind, nehmen Sie sich etwas Zeit, um den Quellcode durchzugehen, schauen Sie, ob Sie irgendeinen Teil des Programms verbessern können, der Maintainer wird mehr als glücklich sein, zu kooperieren. Und wenn Ihnen das Projekt gefällt, vergessen Sie nicht, einen Stern zu hinterlassen und es mit anderen Entwicklerkollegen zu teilen, um Ihre Wertschätzung zu zeigen.