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 -yCentOS/RHEL/Fedora:
$ sudo dnf install curl -yEinmal 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-VersionEs 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.04FÜ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/bashGIT_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 psWie 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:
$ ipIn 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
Hier,
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.