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

Get/Delete-Methode zum Übergeben von Array-Parametern in Vue

Wenn Front-End und Back-End interagieren, müssen ...

So konfigurieren Sie die PDFLatex-Umgebung in Docker

Technischer Hintergrund Latex ist ein unverzichtb...

Spezifische Verwendung von useRef in React

Ich glaube, dass Leute, die Erfahrung mit React h...

Vollständiges Installationstutorial zum Ubuntu 16.04-Image unter VMware

In diesem Artikel finden Sie das Installations-Tu...

So stellen Sie Spring Boot mit Docker bereit

Die Entwicklung der Docker-Technologie bietet ein...

4 flexible SCSS-Kompilierungsausgabestile

Vielen Leuten wird das Kompilieren erklärt, sobal...

CSS: besuchte geheime Erinnerungen des Pseudoklassenselektors

Gestern wollte ich a:visited verwenden, um die Fa...

Detaillierte Erläuterung der MySQL Master-Slave-Datenbankkonstruktionsmethode

Dieser Artikel beschreibt, wie man eine MySQL Mas...

CSS verwendet radialen Farbverlauf zur Implementierung von Coupon-Stilen

In diesem Artikel erfahren Sie, wie Sie mithilfe ...

Detaillierte Erklärung der Rolle des neuen Operators in Js

Vorwort Js ist heutzutage die am häufigsten verwe...