Docker

Einrichten eines Git-HTTP-Servers auf Docker

Einrichten eines Git-HTTP-Servers auf Docker
Der Git HTTP-Server ist sehr nützlich für Leute, die privat an Projekten arbeiten und zusammenarbeiten möchten. In diesem Artikel zeige ich Ihnen, wie Sie mit Docker Compose einen HTTP-zugänglichen Git-Server einrichten.  Also lasst uns anfangen.

Bedarf:

Um diesem Artikel folgen zu können, muss Docker auf Ihrem Computer installiert sein. LinuxHint hat viele Artikel, denen Sie folgen können, um Docker auf Ihrer gewünschten Linux-Distribution zu installieren, wenn Sie es noch nicht installiert haben. Überprüfen Sie also unbedingt LinuxHint.com, falls Sie Probleme bei der Installation von Docker haben.

Docker Compose installieren:

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

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/
docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

HINWEIS: Locken ist möglicherweise nicht auf Ihrer Linux-Distribution installiert. In diesem Fall können Sie curl mit dem folgenden Befehl installieren:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

CentOS/RHEL/Fedora:

$ sudo dnf install curl -y

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

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

Prüfen Sie nun, ob docker-compose Befehl funktioniert wie folgt:

$ docker-compose-Version

Es sollte die Versionsinformationen wie im Screenshot unten gezeigt drucken.

Docker Compose für das Projekt einrichten:

Erstellen Sie nun ein Projektverzeichnis ~/docker/gitserver (sagen wir) und a lager/ und usw/ Verzeichnis innerhalb des Projektverzeichnisses zum Aufbewahren der Git-Repositorys und einiger Konfigurationsdateien.

$ mkdir -p ~/docker/gitserver/repos,etc

Navigieren Sie nun zum Projektverzeichnis ~/docker/gitserver wie folgt:

$ cd ~/docker/gitserver

So sollte der Projektbaum aussehen. Hier habe ich 2 Dateien, git.conf und git-create-repo.Sch in dem usw/ Verzeichnis. Ein leeres lager/ Verzeichnis zum Aufbewahren aller Git-Repositorys. EIN 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 apt update 2>/dev/null
RUN apt install -y git apache2 apache2-utils 2>/dev/null
RUN a2enmod env cgi alias rewrite
RUN mkdir /var/www/git
RUN chown -Rfv www-data:www-data /var/www/git
KOPIEREN ./etc/git.conf /etc/apache2/sites-available/git.conf
KOPIEREN ./etc/git-create-repo.sh /usr/bin/mkrepo
RUN chmod +x /usr/bin/mkrepo
RUN a2dissite 000-default.conf
RUN a2ensite git.conf
RUN git config --system http --.Empfangspaket wahr
RUN git config --system httpsystem.Uploadpack wahr
ENV APACHE_RUN_USER www-daten
ENV APACHE_RUN_GROUP www-daten
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 FOREGROUND
AUSSETZEN 80/tcp

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 +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride None
Fordern Sie alle gewährten

 
DocumentRoot /var/www/html
 

Optionen Indizes FollowSymLinks MultiViews
AllowOverride None
Fordern Sie alle gewährten

ErrorLog $APACHE_LOG_DIR/Fehler.Log
LogLevel-Warnung
CustomLog $APACHE_LOG_DIR/Zugriff.Protokoll 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.Scheiße"
cd "$GIT_DIR/$REPO_NAME.Scheiße"
 
git init --bare &> /dev/null
touch git-daemon-export-ok
cp-Hooks/Post-Update.Beispiel-Hooks/Post-Update
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.Scheiße"
echo "Git-Repository '$REPO_NAME' erstellt in $GIT_DIR/$REPO_NAME.Scheiße"

Schließlich ist 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 nun den folgenden Befehl aus, um das Docker-Image für Git HTTP Server zu erstellen:

$ docker-compose build

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

An dieser Stelle sollte das Docker-Image erstellt werden.

Wann immer Sie Änderungen an einem der gitserver.Dockerfile, etc/git.conf, etc/git-create-repo.Sch Datei müssen Sie das Docker-Image neu erstellen mitbuild 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

Das Git-Server Dienst sollte im Hintergrund starten.

Führen Sie den folgenden Befehl aus, um zu sehen, wie die Ports zugeordnet sind:

$ 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.

Neues Git-Repository auf dem Server erstellen:

So erstellen Sie ein neues Git-Repository Prüfung (sagen wir) auf dem Git-HTTP-Server-Container den folgenden Befehl ausführen:

$ docker-compose exec git-server mkrepo test

Ein neues Git-Repository Prüfung sollte erstellt werden.

Ermitteln der IP-Adresse des Docker-Hosts:

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.

Führen Sie den folgenden Befehl aus, um die IP-Adresse Ihres Docker-Hosts zu ermitteln:

$ ip

In meinem Fall die IP-Adresse meines Docker-Hosts 192.168.20.160. Bei dir wird es anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihres ersetzen.

Zugriff auf Git-Repositorys vom Server aus:

Sie können über die URL http:// auf die Git-Repositorys auf dem Server zugreifen:8080/.git

Hier,

ist die IP-Adresse Ihres Docker-Hosts.

ist der Git-Repository-Name im Git-HTTP-Server.

Also in meinem Fall für die Prüfung Repository sollte die URL http://192 . lauten.168.20.160:8080/test.git

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

$ git-Klon http://192.168.20.160:8080/test.git

Wie Sie sehen, wurde das Repository erfolgreich geklont. Aber derzeit ist es leer.

Ein neues Verzeichnis Prüfung/ sollte erstellt werden.

$ ls

Navigieren Sie zum Prüfung/ Verzeichnis.

$ CD-Test/

Nehmen Sie nun einige Änderungen vor und übergeben Sie es.

$ echo "Willkommen beim Git-Server" > Nachricht.TXT
$ git add -A
$ git commit -m 'erster Commit'
$ git log --oneline

Übertragen Sie nun die Änderungen wie folgt auf den Server:

$ git push origin master

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

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

$ git-Klon http://192.168.20.160:8080/test.git

Navigieren Sie zum Prüfung/ Verzeichnis.

$ CD-Test/

Und finde die Änderungen dort.

Stoppen des Git-HTTP-Servers:

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

$ docker-compose down

Das Git-Server Dienst sollte eingestellt werden.

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

Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...
Linker Mausklick funktioniert nicht unter Windows 10
Wenn Sie eine dedizierte Maus mit Ihrem Laptop oder Desktop-Computer verwenden, aber die linker Mausklick funktioniert nicht unter Windows 10/8/7 aus ...