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.