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.