Skonfiguruj serwer GIT HTTP na Docker

Skonfiguruj serwer GIT HTTP na Docker
GIT HTTP Server jest bardzo przydatny dla osób, które chcą pracować prywatnie i współpracować przy projektach. W tym artykule pokażę Ci, jak skonfigurować serwer GIT dostępny przez HTTP za pomocą Docker Compose. Więc zacznijmy.

Wymagania:

Aby śledzić ten artykuł, musisz zainstalować Docker na swoim komputerze. Linuxhint ma wiele artykułów, które możesz śledzić, aby zainstalować Docker w żądanym dystrybucji Linux, jeśli jeszcze go nie zainstalował. Pamiętaj więc, aby sprawdzić Linuxhint.com na wypadek problemu z instalacją Dockera.

Instalowanie Docker Compose:

Możesz bardzo łatwo pobrać plik binarny Docker za pomocą następującego polecenia:

$ sudo curl -l "https: // github.com/docker/compose/wydania/pobieranie/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/compose

NOTATKA: kędzior nie może być zainstalowane w dystrybucji Linux. W takim przypadku możesz zainstalować Curl z następującym poleceniem:

Ubuntu/Debian/Linux Mint:

$ sudo apt instal curl -y

Centos/Rhel/Fedora:

$ sudo dnf instaluj curl -y

Raz Kompozycja dokera Plik binarny jest pobierany, uruchom następujące polecenie:

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

Teraz sprawdź, czy Kompozycja dokera Komenda działa w następujący sposób:

Wersja $ Docker-Compose

Powinien wydrukować informacje o wersji, jak pokazano na zrzucie ekranu poniżej.

Konfigurowanie Dockera komponuj dla projektu:

Teraz utwórz katalog projektu ~/Docker/Gitserver (powiedzmy) i repozytorium/ I itp/ katalog w katalogu projektu w celu prowadzenia repozytoriów GIT i niektórych plików konfiguracyjnych.

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

Teraz przejdź do katalogu projektu ~/Docker/Gitserver następująco:

$ CD ~/Docker/Gitserver

Tak powinno wyglądać drzewo projektu. Tutaj mam 2 pliki, git.conf I git-create-repo.cii w itp/ informator. Pusty repozytorium/ katalog do przechowywania wszystkich repozytoriów GIT. A Gitserver.Dockerfile do budowy niestandardowego kontenera Docker Server GIT HTTP i Kompozycja dokera.Yaml plik.

Zawartość Gitserver.Dockerfile:

Z Ubuntu: 18.04
Uruchom aktualizację apt 2>/dev/null
Uruchom apt install -y git apache2 apache2 -Utils 2>/dev/null
Uruchom a2enmod env cGI pseudonim
Uruchom mkdir/var/www/git
Run Chown -rfv www-data: www-data/var/www/git
KOPIUJ ./etc/git.conf/etc/apache2/witryny-dostępny/git.conf
KOPIUJ ./etc/git-create-repo.sh/usr/bin/mkrepo
Uruchom chmod +x/usr/bin/mkrepo
Uruchom a2dissite 000-default.conf
Uruchom a2ensite git.conf
Uruchom git config - -system http.Otrzymaj Pack True
Uruchom git config - -system http.przepadaj pack 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 na pierwszym planie
Expose 80/TCP

Zawartość itp./Git.conf Plik konfiguracyjny Apache:


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

Opcje +execcgi -multiviews +SymLinksifownMatch
Bezwyznaniowe
Wymagać wszystkich przyznanych

DocumentRoot/var/www/html

Indeksy opcji obserwuje MultiViews
Bezwyznaniowe
Wymagać wszystkich przyznanych

ErrorLog $ apache_log_dir/error.dziennik
LOGLEVEL OSTRZEŻENIE
CustomLog $ apache_log_dir/access.Log łącznie

Zawartość itp./git-create-repo.cii Skrypt powłoki:

#!/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 - -bare &> /dev /null
Dotknij git-daemon-export-ok
Haczyki CP/post-update.próbki haczyków/post-update
Git aktualizacja-serwer-info
chown -rf www-data: www-data "$ git_dir/$ repo_name.git "
echo "git repozytorium '$ repo_name' utworzone w $ git_dir/$ repo_name.git "

Wreszcie zawartość Kompozycja dokera.Yaml plik:

Wersja: "3.7 "
Usługi:
Git-server:
zbudować:
DockerFile: Gitserver.Dockerfile
kontekst: .
Uruchom ponownie: Zawsze
Porty:
- „8080: 80”
wolumeny:
- ./repos:/var/www/git

Budowanie obrazu Docker Server GIT HTTP:

Teraz, aby zbudować obraz Docker serwera GIT HTTP, uruchom następujące polecenie:

kompilacja $ Docker-Compose

Zbudowanie niestandardowego obrazu dokera może potrwać trochę czasu.

W tym momencie należy zbudować obraz dokera.

Za każdym razem, gdy wprowadzasz jakiekolwiek zmiany w którymkolwiek z Gitserver.Dockerfile, itp./Git.conf, itp./git-create-repo.cii Plik, musisz odbudować obraz Docker za pomocą Kompilacja kompozycji dokera Komenda.

Rozpoczęcie serwera GIT HTTP:

Teraz, aby rozpocząć Git-serwer Usługa, uruchom następujące polecenie:

$ Docker -Compose Up -d

Git-serwer Usługa powinna rozpocząć się w tle.

Aby zobaczyć, jak mapowane są porty, uruchom następujące polecenie:

$ Docker-Compose Ps

Jak widać, dla Git-serwer serwis, port hosta Docker 8080 jest odwzorowany na port TCP kontenera 80.

Tworzenie nowego repozytorium GIT na serwerze:

Aby utworzyć nowe repozytorium GIT test (Powiedzmy) Na kontenerze serwera GIT HTTP uruchom następujące polecenie:

$ Docker-Compose Exec Git-Server Mkrepo Test

Nowe repozytorium GIT test należy utworzyć.

Znalezienie adresu IP hosta Docker:

Jeśli chcesz uzyskać dostęp do serwera GIT HTTP z innych komputerów w sieci, musisz znać adres IP swojego hosta Docker.

Aby znaleźć adres IP swojego hosta Dockera, uruchom następujące polecenie:

$ ip

W moim przypadku adres IP mojego hosta dokera 192.168.20.160. Będzie dla Ciebie inaczej. Więc upewnij się, że odtąd zastąp go swoim.

Dostęp do repozytoriów GIT z serwera:

Możesz uzyskać dostęp do repozytoriów GIT na serwerze za pomocą adresu URL http: //: 8080/.git

Tutaj,

to adres IP twojego hosta Dockera.

to nazwa repozytorium GIT na serwerze GIT HTTP.

Więc w moim przypadku dla test Repozytorium, adres URL powinien być http: // 192.168.20.160: 8080/test.git

Teraz możesz sklonować repozytorium testu z serwera w następujący sposób:

$ git Clone http: // 192.168.20.160: 8080/test.git

Jak widać, repozytorium jest skutecznie klonowane. Ale obecnie jest pusty.

Nowy katalog test/ należy utworzyć.

$ ls

Przejść do test/ informator.

$ CD Test/

Teraz dokonaj zmian i popełnij.

$ echo "Welcome to Git-Server"> Wiadomość.tekst
$ git add -a
$ git commit -m „początkowe zatwierdzenie”
$ git log -linia

Teraz popchnij zmiany na serwer w następujący sposób:

$ git push pochodzenie mistrz

Jak widać, zobowiązania są wysyłane na serwer GIT HTTP.

Teraz ktoś inny może również sklonować testowe repozytorium git.

$ git Clone http: // 192.168.20.160: 8080/test.git

Przejść do test/ informator.

$ CD Test/

I znajdź tam zmiany.

Zatrzymanie serwera GIT HTTP:

Zatrzymać Git-serwer Usługa, uruchom następujące polecenie:

$ Docker-Compose Down

Git-serwer Usługa powinna zostać zatrzymana.

Tak więc skonfigurowałeś serwer GIT HTTP za pomocą Docker. Dziękujemy za przeczytanie tego artykułu.