Dokeris

„Docker“ nustatykite „Git“ HTTP serverį

„Docker“ nustatykite „Git“ HTTP serverį
„Git HTTP“ serveris yra labai naudingas žmonėms, norintiems dirbti ir bendradarbiauti projektuose privačiai. Šiame straipsnyje aš jums parodysiu, kaip nustatyti „HTTP“ pasiekiamą „Git“ serverį naudojant „Docker Compose“.  Taigi, pradėkime.

Reikalavimai:

Norėdami perskaityti šį straipsnį, kompiuteryje turite būti įdiegę „Docker“. „LinuxHint“ turi daugybę straipsnių, kuriuos galite sekti, norėdami įdiegti „Docker“ norimame „Linux“ paskirstyme, jei jo dar neįdiegėte. Taigi, būtinai patikrinkite „LinuxHint“.lt, jei kyla problemų diegiant „Docker“.

„Docker Compose“ diegimas:

Galite lengvai atsisiųsti „Docker Compose“ dvejetainį failą naudodami šią komandą:

$ 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

PASTABA: garbanoti gali būti neįdiegta jūsų „Linux“ paskirstyme. Tokiu atveju galite įdiegti „curl“ naudodami šią komandą:

„Ubuntu“ / „Debian“ / „Linux Mint“:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf install curl -y

Kartą dokininkas-kurti dvejetainis failas atsisiųstas, vykdykite šią komandą:

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

Dabar patikrinkite, ar dokininkas-kurti komanda veikia taip:

$ docker-compose versija

Ji turėtų atspausdinti informaciją apie versiją, kaip parodyta toliau pateiktoje ekrano kopijoje.

„Docker Compose“ nustatymas projektui:

Dabar sukurkite projekto katalogą ~ / docker / gitserver (tarkim) ir a atpirkimas / ir ir tt katalogą projekto kataloge, kuriame laikomos „git“ saugyklos ir kai kurie konfigūracijos failai.

$ mkdir -p ~ / docker / gitserver / repos ir tt

Dabar eikite į projekto katalogą ~ / docker / gitserver taip:

$ cd ~ / docker / gitserver

Taip turėtų atrodyti projekto medis. Čia aš turiu 2 failus, git.konf ir „git-create-repo“.sh viduje konors ir tt kataloge. Tuščia atpirkimas / katalogas, kuriame saugomos visos „Git“ saugyklos. A gitserveris.Dockerfile kuriant pasirinktinį „Git“ HTTP serverio „Docker“ konteinerį ir a dokininkas-kurti.yaml failą.

Programos turinys gitserveris.Dockerfile:

IŠ „ubuntu“: 18.04
Vykdyti apt update 2> / dev / null
Vykdyti apt install -y git apache2 apache2-utils 2> / dev / null
Vykdyti a2enmod env cgi pseudonimas perrašyti
Paleisti mkdir / var / www / git
Paleisti chown -Rfv www-data: www-data / var / www / git
KOPIJA ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOPIJA ./ etc / git-create-repo.sh / usr / bin / mkrepo
Paleiskite chmod + x / usr / bin / mkrepo
Paleisti a2dissite 000-numatytasis.konf
Paleisti a2ensite git.konf
Paleisti „git config“ - sistemą http.Receivepack true
Paleisti „git config“ - sistemą http.uploadpack true
ENV APACHE_RUN_USER www duomenys
ENV APACHE_RUN_GROUP www duomenys
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 Priekinis planas
POVEIKIS 80 / tpp

Turinys etc / git.konf „Apache“ konfigūracijos failas:


„ServerAdmin“ žiniatinklio valdytojas @ localhost
 
„SetEnv GIT_PROJECT_ROOT / var / www / git“
„SetEnv“ GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/ / usr / lib / git-core / git-http-backend /
 
Pseudonimas / / var / www / git
 

Parinktys + ExecCGI -MultiViews + SymLinksIfOwnerMatch
„AllowOverride None“
Reikalauti visų suteiktų

 
„DocumentRoot“ / var / www / html
 

Parinkčių rodyklės „FollowSymLinks MultiViews“
„AllowOverride None“
Reikalauti visų suteiktų

ErrorLog $ APACHE_LOG_DIR / klaida.žurnalas
„LogLevel“ perspėja
„CustomLog“ $ APACHE_LOG_DIR / prieiga.rąstas kartu

Programos turinys etc / git-create-repo.sh „Shell“ scenarijus:

#!/ bin / bash
 
GIT_DIR = "/ var / www / git"
REPO_NAME = 1 USD
 
mkdir -p "$ GIT_DIR / $ REPO_NAME.git "
CD „$ GIT_DIR / $ REPO_NAME“.git "
 
git init --bare &> / dev / null
palieskite „git-daemon-export-ok“
CP kabliukai / po atnaujinimo.kabliukų pavyzdžiai / po atnaujinimo
„git update-server-info“
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
aidas „Git saugykla„ $ REPO_NAME “, sukurta $ GIT_DIR / $ REPO_NAME.git "

Galiausiai, dokininkas-kurti.yaml failas:

versija: "3.7 "
paslaugos:
„git-server“:
statyti:
dockerfile: gitserveris.Dockerfile
kontekstas: .
paleisti iš naujo: visada
uostai:
- "8080: 80"
tomai:
- ./ repos: / var / www / git

„Git HTTP Server Docker“ vaizdo kūrimas:

Dabar, norėdami sukurti „Git HTTP Server“ doko vaizdą, vykdykite šią komandą:

$ docker-compose versija

Gali užtrukti, kol sukursite pasirinktinį „Docker“ vaizdą.

Šiuo metu turėtų būti sukurtas „Docker“ vaizdas.

Kai atliksite bet kurį iš pakeitimų gitserveris.Dockerfile, etc / git.konf, etc / git-create-repo.sh failą, turite atkurti „Docker“ vaizdą naudodami dokininkas-komponuoti komandą.

„Git HTTP Server“ paleidimas:

Dabar, norėdami pradėti „git-server“ paslaugą, vykdykite šią komandą:

$ docker-compose up -d

The „git-server“ paslauga turėtų prasidėti antrame plane.

Norėdami pamatyti, kaip susieti uostai, vykdykite šią komandą:

$ docker-compose ps

Kaip matote, už „git-server“ paslaugą, „Docker“ pagrindinio kompiuterio prievadą 8080 m yra susietas su konteinerio TCP prievadu 80.

Naujos „Git“ saugyklos kūrimas serveryje:

Norėdami sukurti naują „Git“ saugyklą testas (tarkime) „Git“ HTTP serverio sudėtiniame rodinyje vykdykite šią komandą:

$ docker-compose exec git-serverio mkrepo testas

Nauja „Git“ saugykla testas turėtų būti sukurta.

Kaip rasti „Docker Host“ IP adresą:

Jei norite pasiekti „Git“ HTTP serverį iš kitų tinklo kompiuterių, turite žinoti „Docker“ pagrindinio kompiuterio IP adresą.

Norėdami rasti „Docker“ pagrindinio kompiuterio IP adresą, vykdykite šią komandą:

$ ip

Mano atveju mano „Docker“ pagrindinio kompiuterio IP adresas 192.168.20.160. Jums bus kitaip. Taigi, nuo šiol būtinai pakeiskite jį savo.

Prieiga prie „Git“ saugyklų iš serverio:

Galite pasiekti „Git“ saugyklas serveryje naudodami URL http: //: 8080 /.git

Čia,

yra jūsų „Docker“ kompiuterio IP adresas.

yra „Git“ saugyklos pavadinimas „Git“ HTTP serveryje.

Taigi, mano atveju, už testas saugykloje, URL turėtų būti http: // 192.168.20.160: 8080 / bandymas.git

Dabar galite klonuoti bandomąją „Git“ saugyklą iš serverio taip:

$ git klonas http: // 192.168.20.160: 8080 / bandymas.git

Kaip matote, saugykla sėkmingai klonuota. Bet šiuo metu jis tuščias.

Naujas katalogas testas / turėtų būti sukurta.

$ ls

Eikite į testas / kataloge.

$ cd testas /

Dabar atlikite keletą pakeitimų ir atlikite tai.

$ echo „welcome to git-server“> pranešimas.txt
$ git pridėti -A
$ git įsipareigojimas -m 'pradinis įsipareigojimas'
$ git žurnalas - tiesioginis

Dabar stumkite pakeitimus serveryje taip:

$ git push kilmės meistras

Kaip matote, įsipareigojimai sėkmingai siunčiami į „Git“ HTTP serverį.

Dabar kažkas kitas taip pat gali klonuoti bandomąją „Git“ saugyklą.

$ git klonas http: // 192.168.20.160: 8080 / bandymas.git

Eikite į testas / kataloge.

$ cd testas /

Ir raskite pokyčius ten.

„Git“ HTTP serverio sustabdymas:

Norėdami sustabdyti „git-server“ paslaugą, vykdykite šią komandą:

$ docker-compose down

The „git-server“ tarnyba turėtų būti nutraukta.

Taigi, taip nustatote „Git“ HTTP serverį naudodami „Docker“. Dėkojame, kad perskaitėte šį straipsnį.

Geriausi „Linux“ žaidimų distristai 2021 m
„Linux“ operacinė sistema nuėjo ilgą kelią nuo originalios, paprastos, serverio išvaizdos. Ši OS pastaraisiais metais nepaprastai patobulėjo ir dabar ...
Kaip užfiksuoti ir perduoti savo žaidimų sesiją sistemoje „Linux“
Anksčiau žaidimai buvo laikomi tik pomėgiu, tačiau laikui bėgant lošimų pramonė labai augo technologijų ir žaidėjų skaičiaus atžvilgiu. Žaidimų audito...
Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...