Der Prozess des Erstellens und Konfigurierens der Git-Umgebung in Docker

Der Prozess des Erstellens und Konfigurierens der Git-Umgebung in Docker

Konfigurieren Sie die Git-Umgebung in Docker

Bei der Arbeit stieß ich auf ein Szenario, in dem ich ein GitLab-Repository in einer Docker-Umgebung betreiben musste, sodass ich die Git-Umgebung im Voraus in Docker einrichten musste.

Da der Betrieb des Git-Repositorys in Docker vollständig automatisiert ist, ist es notwendig, das Repository abzurufen und Vorgänge ohne Kennwort zu übermitteln. Ich verwende hier SSH, um Vorgänge ohne Kennwort auszuführen.

Als Erstes muss SSH konfiguriert werden und als Zweites die Docker-Umgebung.

SSH-Schlüssel konfigurieren

Zuerst den SSH-Schlüssel generieren:

SSH-Agent
Auswertung $(ssh-agent -s)
ssh-keygen -o -t rsa -b 4096 -C "{Benutzername}"
ssh-add ~/.ssh/id_rsa //Zu .bashrc hinzufügen

Gehen Sie zur GitLab-Seite, melden Sie sich an und wählen Sie dann „Einstellungen“ aus.

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Wählen Sie SSH-Schlüssel in der linken Navigationsleiste aus.

Kopieren Sie die zuvor generierte öffentliche Schlüsseldatei id_rsa.pub (die Datei befindet sich in ~/.ssh/id_rsa.pub ) in diesen Bereich:

Bildbeschreibung hier einfügen

Klicken Sie dann auf Schlüssel hinzufügen:

Bildbeschreibung hier einfügen

Auf diese Weise ist der öffentliche SSH-Schlüssel an den GitLab-Benutzer gebunden und der Benutzer kann in Zukunft verwendet werden, um kennwortfreie Vorgänge im Git-Repository durchzuführen.

Konfigurieren der Docker-Umgebung

Kopieren Sie zunächst den privaten Schlüssel in dasselbe Verzeichnis wie das Docker-File (vorausgesetzt, das Projekt enthält ein Docker-File) und konfigurieren Sie dann das Docker-File.

# SSH-Umgebung für Gitlab konfigurieren
RUN mkdir -p /root/.ssh
KOPIEREN Sie id_rsa /root/.ssh/
RUN echo "StrictHostKeyChecking nein" >> /etc/ssh/ssh_config \
    && echo "UserKnownHostsFile /dev/null" >> /etc/ssh/ssh_config
Führen Sie den Befehl git config --global user.email "[email protected]" \ aus. 
    && git config --global user.name "Benutzername"

Fügen Sie einfach diesen Code ein. Verwenden Sie für user.email und user.name die Kontonummer, mit der der GitLab SSH-Schlüssel zuvor konfiguriert wurde.

Ab diesem Zeitpunkt können Sie das Git-Repository in Docker ohne Kennwort betreiben.

Mögliche Fehler

Wenn die folgenden Fehler weiterhin bestehen:

Bildbeschreibung hier einfügen

Dies deutet auf id_rsa 權限問題,通過在Dockerfile 中加入

RUN chown 1000:1000 /root/.ssh/id_rsa

Das Problem ist gelöst.

Damit ist dieser Artikel über das Einrichten und Konfigurieren der Git-Umgebung in Docker abgeschlossen. Weitere Informationen zum Konfigurieren der Git-Umgebung mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detailliertes Tutorial zum Erstellen einer Continuous-Integration-Delivery-Umgebung basierend auf Docker+K8S+GitLab/SVN+Jenkins+Harbor
  • Methoden und Schritte zum Bereitstellen einer GitLab-Umgebung basierend auf Docker
  • Verwenden Sie Docker, um ein Git-Image mithilfe des Klon-Repositorys zu erstellen
  • So stellen Sie Gitlab schnell mit Docker bereit
  • Docker-Compose - Bereitstellung der chinesischen Gitlab-Version per Mausklick - Methodenschritte
  • Centos7 verwendet Docker zum Erstellen eines Gitlab-Servers
  • Detaillierte Erklärung zur Verwendung von Docker zum Erstellen von Gitlab

<<:  MySQL-Serie 9 MySQL-Abfrage-Cache und -Index

>>:  Eine kurze Analyse der vier Importmethoden und Prioritäten in CSS

Artikel empfehlen

HTML-Meta erklärt

Einführung Der Meta-Tag ist ein Hilfstag im HEAD-...

Verwendung von Vue-Filtern und benutzerdefinierten Anweisungen

Inhaltsverzeichnis Filter 01.Was ist 02. Wie es g...

MySQL 5.7.20 Green Edition Installation Detailliertes grafisches Tutorial

Lassen Sie uns zunächst verstehen, was MySQL ist....

JS realisiert Spezialeffekte der Webseiten-Navigationsleiste

In diesem Artikel erfahren Sie mehr über einen pr...

Eine kurze Diskussion über 3 bemerkenswerte neue Features in TypeScript 3.7

Inhaltsverzeichnis Vorwort Optionale Verkettung N...

Dieser Artikel zeigt Ihnen detailliert, wie Sie SQL CASE WHEN verwenden

Inhaltsverzeichnis Einfache CASEWHEN-Funktion: Di...

Fehlerbehebung bei der Ursache des 502 Bad Gateway-Fehlers auf dem Nginx-Server

Der Server meldet einen Fehler 502 beim Synchroni...

MySQL-Datenbank implementiert MMM-Hochverfügbarkeitsclusterarchitektur

Konzept MMM (Master-Master-Replikationsmanager fü...

So verstehen Sie die semantische HTML-Struktur

Ich glaube, jeder kennt HTML und CSS, kennt die T...

Spezifische Verwendungsanweisungen für MySQL-Joins

Inhaltsverzeichnis Join-Syntax: 1. InnerJOIN: (In...

Vue3 (Teil 2) Integration von Ant Design Vue

Inhaltsverzeichnis 1. Integrieren Sie Ant Design ...