Docker

Nastaviť Git HTTP Server na Docker

Nastaviť Git HTTP Server na Docker
Git HTTP server je veľmi užitočný pre ľudí, ktorí chcú pracovať a spolupracovať na projektoch súkromne. V tomto článku vám ukážem, ako nastaviť server Git prístupný cez HTTP pomocou Docker Compose.  Takže poďme na to.

Požiadavky:

Ak chcete postupovať podľa tohto článku, musíte mať vo svojom počítači nainštalovaný program Docker. LinuxHint obsahuje veľa článkov, podľa ktorých si môžete nainštalovať Docker na požadovanú distribúciu Linuxu, ak ho ešte nemáte nainštalovaný. Nezabudnite teda skontrolovať LinuxHint.com v prípade, že máte problémy s inštaláciou Dockeru.

Inštalácia Docker Compose:

Binárny súbor Docker Compose si môžete stiahnuť veľmi ľahko pomocou nasledujúceho prí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: zvlnenie nemusí byť vo vašej distribúcii Linuxu nainštalovaný. V takom prípade môžete curl nainštalovať pomocou nasledujúceho príkazu:

Ubuntu / Debian / Linux Mint:

$ sudo apt nainštalovať curl -y

CentOS / RHEL / Fedora:

$ sudo dnf install curl -y

Raz ukotviť-zložiť binárny súbor sa stiahne, spustite nasledujúci príkaz:

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

Teraz skontrolujte, či ukotviť-zložiť príkaz funguje nasledovne:

$ docker-compose verzia

Mal by vytlačiť informácie o verzii, ako je znázornené na snímke obrazovky nižšie.

Nastavenie Docker Compose pre projekt:

Teraz vytvorte adresár projektu ~ / docker / gitserver (povedzme) a a repo / a atď/ adresár vo vnútri adresára projektu na uchovanie repozitárov git a niektorých konfiguračných súborov.

$ mkdir -p ~ / docker / gitserver / repos, etc

Teraz prejdite do adresára projektu ~ / docker / gitserver nasledovne:

$ cd ~ / docker / gitserver

Takto by mal vyzerať strom projektu. Tu mám 2 súbory, git.konf a git-create-repo.š v atď/ adresár. Prázdny repo / adresár na uchovávanie všetkých archívov Git. A gitserver.Dockerfile na vytvorenie vlastného kontajnera Docker servera Git HTTP a ukotviť-zložiť.yaml spis.

Obsah gitserver.Dockerfile:

Z ubuntu: 18.04
RUN apt aktualizácia 2> / dev / null
RUN apt install -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias prepísať
RUN mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
KÓPIA ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOPÍROVAŤ ./ etc / git-create-repo.sh / usr / bin / mkrepo
RUN chmod + x / usr / bin / mkrepo
RUN a2dissite 000-predvolené.konf
RUN a2ensite git.konf
RUN git config - system http.receivepack pravda
RUN git config - system http.uploadpack true
ENV APACHE_RUN_USER www-dáta
ENV APACHE_RUN_GROUP www-dáta
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 ZAČIATOK
EXPOZÍCIA 80 / tcp

Obsah etc / git.konf Konfiguračný súbor 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 Žiadne
Vyžadovať všetky udelené

 
DocumentRoot / var / www / html
 

Možnosti Registery FollowSymLinks MultiViews
AllowOverride Žiadne
Vyžadovať všetky udelené

ErrorLog $ APACHE_LOG_DIR / chyba.log
Varovanie LogLevel
CustomLog $ APACHE_LOG_DIR / prístup.log kombinovať

Obsah etc / git-create-repo.š Shell skript:

#!/ bin / bash
 
GIT_DIR = "/ var / www / git"
REPO_NAME = 1 dolár
 
mkdir -p "$ GIT_DIR / $ REPO_NAME.git "
cd "$ GIT_DIR / $ REPO_NAME.git "
 
git init --bare &> / dev / null
klepnite na git-daemon-export-ok
háky cp / post-aktualizácia.ukážka háčikov / post-aktualizácia
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "Git repozitár '$ REPO_NAME' vytvorený v $ GIT_DIR / $ REPO_NAME.git "

Napokon obsah ukotviť-zložiť.yaml spis:

verzia: „3.7 "
služby:
git-server:
stavať:
dockerfile: gitserver.Dockerfile
kontext: .
reštart: vždy
prístavy:
- „8080: 80“
objemy:
- ./ repos: / var / www / git

Vytváranie obrazu dokovacej stanice servera Git HTTP:

Teraz, aby ste vytvorili obraz ukotvenia servera Git HTTP Server, spustite nasledujúci príkaz:

$ docker-compose build

Vytvorenie vlastného obrazu Dockeru môže chvíľu trvať.

V tomto okamihu by sa mal vytvoriť obraz Dockeru.

Kedykoľvek urobíte zmeny v ktorejkoľvek z položiek gitserver.Dockerfile, etc / git.konf, etc / git-create-repo.š súbor, musíte znova vytvoriť obraz Dockeru pomocou docker-compose build príkaz.

Spustenie servera Git HTTP:

Teraz začnite git-server spustite nasledujúci príkaz:

$ docker-compose up -d

The git-server služba by mala začínať na pozadí.

Mapovanie portov zobrazíte spustením nasledujúceho príkazu:

$ docker-compose ps

Ako vidíte, pre git-server hostiteľský port Dockeru 8080 je namapovaný na port TCP kontajnera 80.

Vytvorenie nového úložiska Git na serveri:

Vytvorenie nového úložiska Git test (povedzme) v kontajneri servera Git HTTP spustite nasledujúci príkaz:

$ docker-compose vykonat test git-server mkrepo

Nové úložisko Git test by mali byť vytvorené.

Zistenie IP adresy hostiteľa Docker:

Ak chcete na server Git HTTP pristupovať z iných počítačov vo svojej sieti, musíte poznať adresu IP hostiteľa Dockeru.

Ak chcete zistiť adresu IP hostiteľa Dockeru, spustite nasledujúci príkaz:

$ ip

V mojom prípade adresa IP môjho hostiteľa Docker 192.168.20.160. U teba to bude iné. Odteraz ho teda vymeňte za svoj.

Prístup k repozitárom Git zo servera:

K úložiskám Git na serveri môžete pristupovať pomocou adresy URL http: //: 8080 /.git

Tu,

je IP adresa vášho hostiteľa Docker.

je názov úložiska Git na serveri Git HTTP.

Takže v mojom prípade pre test úložisko, mala by byť adresa URL http: // 192.168.20.160: 8080 / test.git

Teraz môžete klonovať testovacie úložisko Git zo servera nasledovne:

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

Ako vidíte, úložisko je klonované úspešne. Ale momentálne je prázdna.

Nový adresár test / by mali byť vytvorené.

$ ls

Prejdite na ikonu test / adresár.

$ cd test /

Teraz urobte nejaké zmeny a potvrďte to.

$ echo "vitajte na git-server"> správa.TXT
$ git pridať -A
$ git commit -m 'initial commit'
$ git log - online

Teraz tlačte zmeny na server nasledovne:

$ git push pôvodný majster

Ako vidíte, potvrdenia sa úspešne odosielajú na server Git HTTP.

Teraz môže klonovať testovacie úložisko Git aj niekto iný.

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

Prejdite na ikonu test / adresár.

$ cd test /

A nájdite tam zmeny.

Zastavenie servera Git HTTP:

Ak chcete zastaviť git-server spustite nasledujúci príkaz:

$ docker-skomponovať

The git-server služba by mala byť zastavená.

Takto ste nastavili server Git HTTP pomocou Dockeru. Ďakujeme, že ste si prečítali tento článok.

Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvorenie vlastnej simulácie dopravy môže byť zábavné, relaxačné a mimoriadne lákavé. Preto sa musíte uistiť, že vyskúšate čo najviac hier, aby ste n...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...