Richten Sie einen GIT -HTTP -Server auf Docker ein

Richten Sie einen GIT -HTTP -Server auf Docker ein
Git HTTP Server ist sehr nützlich für Personen, die privat an Projekten arbeiten und zusammenarbeiten möchten. In diesem Artikel werde ich Ihnen zeigen. Also lasst uns anfangen.

Anforderungen:

Um diesem Artikel zu folgen, müssen Sie Docker auf Ihrem Computer installieren lassen. LinuxHint verfügt über viele Artikel. Überprüfen Sie also LinuxHint unbedingt.Com für den Fall, dass Sie Probleme haben, Docker zu installieren.

Installieren von Docker Compose:

Sie können Docker Compose Binärdatei sehr einfach mit dem folgenden Befehl herunterladen:

$ sudo curl -l "https: // github.com/docker/komponieren/veröffentlichen/download/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-O/usr/local/bin/docker-compose

NOTIZ: Locken Kann nicht auf Ihrer Linux -Verteilung installiert werden. Wenn dies der Fall ist, können Sie Curl mit dem folgenden Befehl installieren:

Ubuntu/Debian/Linux Mint:

$ sudo apt installieren curl -y

CentOS/Rhel/Fedora:

$ sudo dnf installieren curl -y

Einmal Docker-Compose Binärdatei wird heruntergeladen, führen Sie den folgenden Befehl aus:

$ sudo chmod +x/usr/local/bin/docker-compose

Überprüfen Sie nun, ob Docker-Compose Der Befehl funktioniert wie folgt:

$ docker-compose Version

Es sollte die Versionsinformationen wie im unten gezeigten Screenshot drucken.

Einrichten von Docker Compose für das Projekt:

Erstellen Sie nun ein Projektverzeichnis ~/Docker/Gitserver (sagen wir sagen) und a Repos/ Und usw/ Verzeichnis im Projektverzeichnis, um die Git -Repositories und einige Konfigurationsdateien zu behalten.

$ mkdir -p ~/docker/gitserver/repos usw.

Navigieren Sie nun zum Projektverzeichnis ~/Docker/Gitserver folgendermaßen:

$ cd ~/docker/gitserver

So sollte der Projektbaum aussehen. Hier habe ich 2 Dateien, Git.Conf Und Git-Create-Repo.Sch im usw/ Verzeichnis. Ein leeres Repos/ Verzeichnis, um alle Git -Repositories zu halten. A Gitserver.Dockerfile zum Erstellen eines benutzerdefinierten GIT -HTTP -Server -Docker -Containers und a Docker-Compose.Yaml Datei.

Der Inhalt der Gitserver.Dockerfile:

Von Ubuntu: 18.04
Führen Sie das APT -Update 2>/dev/null aus
Führen Sie die APT aus
Führen Sie A2enmod env cgi alias um. Umschreiben
Führen Sie Mkdir/var/www/git aus
Run Chown -rfv www-data: www-data/var/www/git
KOPIEREN ./etc/git.conf/etc/apache2/seites-verfügbare/git.Conf
KOPIEREN ./etc/git-create-repo.sh/usr/bin/mkrepo
Führen Sie CHMOD +X/USR/Bin/MKREPO aus
Führen Sie A2dissit 000-Default aus.Conf
Führen Sie A2ensit Git aus.Conf
Führen Sie die GIT -Konfiguration aus -System HTTP.empfangenpack true
Führen Sie die GIT -Konfiguration aus -System HTTP.Uploadpack true
Env apache_run_user www-data
Env apache_run_group www-data
Env apache_log_dir/var/log/apache2
Env apache_lock_dir/var/lock/apache2
Env apache_pid_file/var/run/apache2.PID
CMD/USR/SBIN/Apache2CTL -D Vordergrund
80/TCP freilegen

Die Inhalte von etc/git.Conf Apache -Konfigurationsdatei:


Serveradmin webmaster@localhost
SetEnv git_project_root/var/www/git
SetEnv git_http_export_all
Scriptalias//usr/lib/git-core/git-http-backend/
Alias ​​/ /var /www /git

Optionen +execgi -multiviews +symlinkSifownermatch
NichtsRide keine
Alle gewährt

DocumentRoot/var/www/html

Optionsindizes folgt den Multiviews
NichtsRide keine
Alle gewährt

Fehlerlog $ apache_log_dir/fehler.Protokoll
Loglevel warnen
CustomLog $ apache_log_dir/Access.log kombiniert

Der Inhalt der etc/git-create-repo.Sch Shell-Skript:

#!/Bin/Bash
Git_dir = "/var/www/git"
Repo_name = $ 1
mkdir -p "$ git_dir/$ repo_name.Git "
CD "$ git_dir/$ repo_name.Git "
git init -bar &> /dev /null
Berühren Sie Git-Daemon-Export-OK
CP-Hooks/Post-Update.Probenhaken/Post-Update
Git Update-Server-Info
Chown -rf www-data: www-data "$ git_dir/$ repo_name.Git "
echo "git repository '$ repo_name' erstellt in $ git_dir/$ repo_name.Git "

Schließlich der Inhalt der Docker-Compose.Yaml Datei:

Version: "3.7 "
Dienstleistungen:
Git-Server:
bauen:
Dockerfile: Gitserver.Dockerfile
Kontext: .
Neustart: Immer
Häfen:
- "8080: 80"
Bände:
- ./repos:/var/www/git

Erstellen von Git HTTP Server Docker Image:

Führen Sie jetzt den folgenden Befehl aus:

$ docker-compose Build

Es kann eine Weile dauern, um ein benutzerdefiniertes Docker -Bild zu erstellen.

Zu diesem Zeitpunkt sollte das Docker -Bild erstellt werden.

Wann immer Sie Änderungen an einem der Gitserver.Dockerfile, etc/git.Conf, etc/git-create-repo.Sch Datei, Sie müssen das Docker -Bild mithilfe des Docker -Bildes neu aufbauen Docker-Compose-Build Befehl.

Git HTTP Server starten:

Nun, um die zu starten Git-Server Service, führen Sie den folgenden Befehl aus:

$ docker -compose up -d

Der Git-Server Der Service sollte im Hintergrund beginnen.

Um zu sehen, wie die Ports zugeordnet werden, führen Sie den folgenden Befehl aus:

$ docker-compose ps

Wie Sie sehen können, für die Git-Server Service, der Docker Host -Port 8080 wird dem Container -TCP -Port zugeordnet 80.

Erstellen eines neuen Git -Repositorys auf dem Server:

So erstellen Sie ein neues Git -Repository prüfen (sagen wir sagen) Aus dem folgenden Befehl Git HTTP Server -Container: Führen Sie den folgenden Befehl aus:

$ docker-compose Exec

Ein neues Git -Repository prüfen sollte erstellt werden.

Finden der IP -Adresse von Docker Host:

Wenn Sie von anderen Computern in Ihrem Netzwerk auf den Git HTTP -Server zugreifen möchten, müssen Sie die IP -Adresse Ihres Docker -Hosts kennen.

Um die IP -Adresse Ihres Docker -Hosts zu finden, führen Sie den folgenden Befehl aus:

$ ip

In meinem Fall die IP -Adresse meines Docker -Hosts 192.168.20.160. Es wird für Sie anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihre ersetzen.

Zugriff auf Git -Repositories vom Server:

Sie können mit der URL http: // auf die Git -Repositories auf dem Server zugreifen: 8080/.Git

Hier,

ist die IP -Adresse Ihres Docker -Hosts.

ist der Name des Git -Repositorys auf dem Git HTTP -Server.

Also in meinem Fall für die prüfen Repository, die URL sollte http: // 192 sein.168.20.160: 8080/Test.Git

Jetzt können Sie das Test -Git -Repository wie folgt aus dem Server klonen:

$ git klone http: // 192.168.20.160: 8080/Test.Git

Wie Sie sehen können, wird das Repository erfolgreich geklont. Aber es ist derzeit leer.

Ein neues Verzeichnis prüfen/ sollte erstellt werden.

$ ls

Navigieren zum prüfen/ Verzeichnis.

$ cd Test/

Nehmen Sie nun einige Änderungen vor und begehen Sie es.

$ echo "Willkommen bei Git-Server"> Nachricht.txt
$ git add -a
$ git Commit -m 'Erstes Commit' '
$ Git -Protokoll -Einmal

Drücken Sie nun die Änderungen wie folgt auf den Server:

$ Git Push Origin Master

Wie Sie sehen können, werden die Commits erfolgreich an den Git HTTP -Server gesendet.

Jetzt kann jemand anderes das Test -Git -Repository auch klonen.

$ git klone http: // 192.168.20.160: 8080/Test.Git

Navigieren zum prüfen/ Verzeichnis.

$ cd Test/

Und finden Sie die Änderungen dort.

Stoppen des Git HTTP -Servers:

Um die zu stoppen Git-Server Service, führen Sie den folgenden Befehl aus:

$ docker-compose down

Der Git-Server Der Service sollte gestoppt werden.

So richten Sie einen Git -HTTP -Server mit Docker ein. Danke, dass du diesen Artikel gelesen hast.