Verwenden Sie Docker, um ein Git-Image mithilfe des Klon-Repositorys zu erstellen

Verwenden Sie Docker, um ein Git-Image mithilfe des Klon-Repositorys zu erstellen

Überblick

Ich verwende Docker seit über einem Jahr. Vor Kurzem ist mir aufgefallen, dass beim schnellen Orchestrieren von Diensten das im Shell-Skript verwendete Git immer noch nativ war.

Bildbeschreibung hier einfügen

Also beschloss ich, Git in einen Container zu packen, suchte auf Dockerhub und fand dieses Image mit einem relativ hohen Downloadvolumen

Bildbeschreibung hier einfügen

Nachdem ich mir das Dockerfile angesehen habe, bin ich der Meinung, dass es nicht für die Anforderungen geeignet ist

Bildbeschreibung hier einfügen

Hier werden weder Volumes noch SSH bereitgestellt. Es ist nicht möglich, das Repository dem Hostcomputer zuzuordnen, noch gibt es eine Funktion zum Klonen eines privaten Repositorys (Flüstern: beides ist möglich, aber umständlich). Andere Gitclient-Images sind ähnlich.

Bildbeschreibung hier einfügen
Ich kann das Rad nur selbst neu erfinden.

Spiegeladresse

Das Image in diesem Artikel wird auf Dockerhub übertragen. Sie können es bei Bedarf direkt verwenden: https://hub.docker.com/r/wuliangxue/git

Rad

Sie benötigen zunächst ein Docker Hub-Konto und müssen sich dann mit Docker beim Server anmelden, um das Image in das Docker Hub-Repository zu übertragen, was zukünftige Migrationen erleichtert.

Bildbeschreibung hier einfügen

Erstellen Sie eine git.dockerfile-Datei in einem beliebigen Verzeichnis

Bildbeschreibung hier einfügen

Geben Sie im Dockerfile Folgendes ein

Bildbeschreibung hier einfügen

Lassen Sie mich hier kurz erklären, dass ursprünglich ein auf Ubuntu 18.04 basierender Spiegel bereitgestellt wurde, der jedoch zu groß war und daher durch Alpine ersetzt wurde. Private Anwender müssen die Linux-Softwarequelle auf einen privaten Spiegel umstellen, da es sonst bei der Installation der Software zu verschiedenen Problemen kommt. Dieses Image selbst ist zum Klonen von Projekten gedacht, daher sind nur Git und SSH installiert. Als Nächstes bereiten Sie das Klonen des privaten Lagers vor und öffnen das entsprechende SSH-Verzeichnisvolume. Da das Arbeitsverzeichnis festgelegt ist, befindet sich das Standardprojekt beim Git-Klonen im Verzeichnis /git/repo . Wenn Sie einen Spiegel verwenden, mounten Sie einfach dieses Verzeichnis.

Erstellen des Images

Geben Sie den Befehl ein: docker build -t wuliangxue/git:0.1-alpine -f git.dockerfile .

Bildbeschreibung hier einfügen

Wenn „Erfolgreich“ angezeigt wird, bedeutet dies, dass das Image erfolgreich erstellt wurde.

Bildbeschreibung hier einfügen

Hier vergleichen wir die Größen der auf Ubuntu 18.04 basierenden Images. Das Image mit dem Tag 0.1 basiert auf Ubuntu 18.04 [187M], und das Image mit dem Tag 0.1-alpine basiert auf alpine:3.12 [30.1M].

Bildbeschreibung hier einfügen

Verwenden von Mirror

Verwenden Sie zunächst das soeben erstellte Image, um ein öffentliches Repository zu klonen, und führen Sie den folgenden Befehl aus

docker run --rm --name git \
	-v "$(pwd)":/git/repo wuliangxue/git:0.1-alpine \
	Git-Klon https://github.com/docker-library/mysql.git 

Bildbeschreibung hier einfügen

Dieses Repository wurde geklont.

Bildbeschreibung hier einfügen

Wenn Sie die Details des Klons anzeigen möchten, können Sie dem vorherigen Befehl -it hinzufügen.

docker run -it --rm --name git \
	-v "$(pwd)":/git/repo wuliangxue/git:0.1-alpine \
	Git-Klon https://github.com/docker-library/mysql.git 

Bildbeschreibung hier einfügen

Was muss ich tun, wenn ich ein privates Lager klonen muss? ?
Sie können die öffentlichen und privaten SSH-Schlüssel in den Container einbinden.
Führen Sie den folgenden Befehl aus [Beachten Sie, dass ich zu Demonstrationszwecken die öffentlichen und privaten Schlüssel direkt im aktuellen Verzeichnis abgelegt habe]

docker run -it --rm --name git \
-v "$(pwd)":/git/repo \
-v "$(pwd)/id_rsa":/root/.ssh/id_rsa \
-v "$(pwd)/id_rsa.pub":/root/.ssh/id_rsa.pub \
wuliangxue/git:0.1-alpine Git-Klon [email protected]:wuliangxue/douyu.git 

Bildbeschreibung hier einfügen

Beachten Sie, dass der Parameter -it hier hinzugefügt werden muss, da Git beim ersten Klonen eines privaten Repositorys die Authentizität der Adresse nicht kennt (es gibt keinen Datensatz in der Datei known_hosts und es gibt keine solche Datei für die erste Verwendung), sodass es danach fragt. Wenn kein Parameter -it vorhanden ist und die Terminalinteraktionsfunktion nicht aktiviert ist, schlägt der Klon direkt fehl.

Geben Sie „Ja“ ein und drücken Sie die Eingabetaste, um das private Lager zu klonen.

Bildbeschreibung hier einfügen

Schieben Sie dieses Rad abschließend zu Dockerhub, damit Sie es beim nächsten Serverwechsel direkt abrufen und verwenden können.

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Verwendung von Docker zum Erstellen eines Git-Images mithilfe eines Klon-Repositorys. Weitere Informationen zum Erstellen von Git-Images mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie Docker buildx, um plattformübergreifende Images zu erstellen und sie in private Repositories zu übertragen
  • So verwenden Sie ein Domestic Image Warehouse für Docker
  • Jenkins erstellt Docker-Images und überträgt sie in das Harbor-Warehouse.
  • docker-maven-plugin verpackt das Image und lädt es in ein privates Warehouse hoch
  • So verwenden Sie das Docker-Image-Repository
  • Alibaba Cloud-Bereitstellungsschritte für das private Docker-Image-Repository
  • Docker-Container-Praxis-Image-Warehouse

<<:  Tutorial zu HTML-Tabellen-Tags (20): Zeilenhintergrund-Farbattribut BGCOLOR

>>:  Native JS-Implementierung des Ladefortschrittsbalkens

Artikel empfehlen

MySQL-Optimierung: So schreiben Sie hochwertige SQL-Anweisungen

Vorwort Im Internet gibt es zahlreiche Informatio...

Einfache Implementierung von HTML zum Erstellen eines persönlichen Lebenslaufs

Lebenslauf-Code: XML/HTML-CodeInhalt in die Zwisc...

Eine vollständige Liste häufig verwendeter HTML-Tags und ihrer Eigenschaften

Zunächst müssen Sie einige Eigenschaften von HTML...

Implementierung der Validierung mehrerer Elemente im Formular

Im Projekt werden häufig Formulartests durchgefüh...

Teilen Sie einige ungewöhnliche, aber nützliche JS-Techniken

Vorwort Programmiersprachen enthalten normalerwei...

Einige Schlussfolgerungen zur Gestaltung von Portal-Website-Fokusbildern

Fokusbilder sind eine Möglichkeit, Inhalte zu präs...

So bereinigen Sie Daten in einer MySQL-Onlinedatenbank

Inhaltsverzeichnis 01 Szenarioanalyse 02 Funktion...

Analyse des Unterschieds zwischen fettgedrucktem <b> und <strong>

Wir alle Webmaster wissen, dass es bei der Optimi...