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 -yCentOS / RHEL / Fedora:
$ sudo dnf install curl -yRaz 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 verziaMal 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.04RUN 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 / bashGIT_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 psAko 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:
$ ipV 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: //
Tu,
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.