Přístavní dělník

Nastavte server Git HTTP na Dockeru

Nastavte server Git HTTP na Dockeru
Git HTTP server je velmi užitečný pro lidi, kteří chtějí pracovat a spolupracovat na projektech soukromě. V tomto článku vám ukážu, jak nastavit server Git přístupný pomocí HTTP pomocí Docker Compose.  Pojďme tedy začít.

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 -y

CentOS / RHEL / Fedora:

$ sudo dnf install curl -y

Jednou 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 verze

Mě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.04
RUN 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 / 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
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 ps

Jak 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:

$ ip

V 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: //: 8080 /.sakra

Tady,

je IP adresa vašeho hostitele Docker.

je název úložiště Git na serveru Git HTTP.

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.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...