Požadavky:
Abyste mohli postupovat podle tohoto článku, musíte mít ve svém počítači nainstalovaný Docker. LinuxHint obsahuje mnoho článků, které můžete použít k instalaci Dockeru na požadovanou distribuci Linuxu, pokud ji ještě nemáte nainstalovanou. Nezapomeňte tedy zkontrolovat LinuxHint.com v případě, že máte potíže s instalací Dockeru.
Instalace Docker Compose:
Binární soubor Docker Compose si můžete stáhnout velmi snadno pomocí následujícího příkazu:
$ 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
POZNÁMKA: kučera nemusí být nainstalován na vaší distribuci Linuxu. V takovém případě můžete curl nainstalovat pomocí následujícího příkazu:
Ubuntu / Debian / Linux Mint:
$ sudo apt install curl -yCentOS / RHEL / Fedora:
$ sudo dnf install curl -yJednou docker-compose binární soubor je stažen, spusťte následující příkaz:
$ sudo chmod + x / usr / local / bin / docker-compose
Nyní zkontrolujte, zda docker-compose příkaz funguje následovně:
$ docker-compose verzeMělo by vytisknout informace o verzi, jak je znázorněno na následujícím obrázku.
Nastavení Docker Compose pro projekt:
Nyní vytvořte adresář projektu ~ / docker / gitserver (řekněme) a repos / a atd/ adresář uvnitř adresáře projektu pro uchování repozitářů git a některých konfiguračních souborů.
$ mkdir -p ~ / docker / gitserver / repos atd.
Nyní přejděte do adresáře projektu ~ / docker / gitserver jak následuje:
$ cd ~ / docker / gitserver
Takto by měl vypadat strom projektu. Tady mám 2 soubory, sakra.konf a git-create-repo.sh v atd/ adresář. Prázdný repos / adresář pro uchování všech repozitářů Git. A gitserver.Dockerfile pro vytvoření vlastního kontejneru Docker serveru Git HTTP a docker-compose.yaml soubor.
Obsah gitserver.Dockerfile:
Z ubuntu: 18.04RUN apt update 2> / dev / null
RUN apt install -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias přepsat
RUN mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
KOPÍROVAT ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOPÍROVAT ./ etc / git-create-repo.sh / usr / bin / mkrepo
RUN chmod + x / usr / bin / mkrepo
RUN a2dissite 000 - výchozí.konf
RUN a2ensite git.konf
RUN git config - system http.receivepack true
RUN git config --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 FOREGROUND
EXPOZICE 80 / tcp
Obsah etc / git.konf Konfigurační soubor 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
Možnosti + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Žádný
Vyžadovat vše uděleno
DocumentRoot / var / www / html
Možnosti Rejstříky FollowSymLinks MultiViews
AllowOverride Žádný
Vyžadovat vše uděleno
ErrorLog $ APACHE_LOG_DIR / chyba.log
Varování LogLevel
CustomLog $ APACHE_LOG_DIR / přístup.kombinovat protokol
Obsah etc / git-create-repo.sh Shell skript:
#!/ bin / bashGIT_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
klepněte na git-daemon-export-ok
cp háčky / post-update.ukázkové háčky / post-update
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "Úložiště Git '$ REPO_NAME' vytvořené v $ GIT_DIR / $ REPO_NAME.git "
Nakonec obsah docker-compose.yaml soubor:
verze: „3.7 "služby:
git-server:
stavět:
dockerfile: gitserver.Dockerfile
kontext: .
restart: vždy
porty:
- „8080: 80“
objemy:
- ./ repos: / var / www / git
Vytváření obrázku dokovací stanice serveru Git HTTP:
Nyní, chcete-li vytvořit bitovou kopii serveru Git HTTP Server, spusťte následující příkaz:
$ docker-compose build
Vytvoření vlastního obrazu Dockeru může chvíli trvat.
V tomto okamžiku by měl být vytvořen obraz Dockeru.
Kdykoli provedete jakékoli změny v některém z gitserver.Dockerfile, etc / git.konf, etc / git-create-repo.sh souboru, musíte znovu vytvořit obraz Dockeru pomocí docker-compose build příkaz.
Spuštění serveru Git HTTP:
Nyní pro spuštění git-server služba, spusťte následující příkaz:
$ docker-compose up -d
The git-server služba by měla začít na pozadí.
Chcete-li zjistit, jak jsou porty mapovány, spusťte následující příkaz:
$ docker-compose psJak vidíte, pro git-server služba, hostitelský port Dockeru 8080 je mapován na port TCP kontejneru 80.
Vytvoření nového úložiště Git na serveru:
Chcete-li vytvořit nové úložiště Git test (řekněme) na kontejneru serveru Git HTTP spusťte následující příkaz:
$ docker-compose exec git-server mkrepo test
Nové úložiště Git test by měl být vytvořen.
Zjištění IP adresy hostitele Docker:
Pokud chcete přistupovat k serveru Git HTTP z jiných počítačů ve vaší síti, musíte znát IP adresu vašeho hostitele Docker.
Chcete-li zjistit adresu IP hostitele Dockeru, spusťte následující příkaz:
$ ipV mém případě IP adresa mého hostitele Dockeru 192.168.20.160. Bude to pro vás jiné. Od této chvíle jej tedy vyměňte za svůj.
Přístup k repozitářům Git ze serveru:
K úložištím Git na serveru můžete přistupovat pomocí adresy URL http: //
Tady,
Takže v mém případě pro test úložiště by měla být adresa URL http: // 192.168.20.160: 8080 / test.sakra
Nyní můžete klonovat testovací úložiště Git ze serveru následujícím způsobem:
$ git klon http: // 192.168.20.160: 8080 / test.sakra
Jak vidíte, úložiště je úspěšně klonováno. Ale v současné době je prázdná.
Nový adresář test/ by měl být vytvořen.
$ ls
Přejděte na test/ adresář.
$ cd test /
Nyní proveďte nějaké změny a potvrďte to.
$ echo "vítejte na git-server"> zpráva.txt$ git přidat -A
$ git commit -m 'initial commit'
$ git log - online
Nyní proveďte změny na server následujícím způsobem:
$ git push origin master
Jak vidíte, potvrzení se úspěšně odesílají na server Git HTTP.
Nyní může klonovat testovací úložiště Git také někdo jiný.
$ git klon http: // 192.168.20.160: 8080 / test.sakra
Přejděte na test/ adresář.
$ cd test /
A najděte tam změny.
Zastavení serveru Git HTTP:
Chcete-li zastavit git-server služba, spusťte následující příkaz:
$ docker-compose down
The git-server služba by měla být zastavena.
Takto nastavíte server Git HTTP pomocí Dockeru. Děkujeme za přečtení tohoto článku.