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 -yCentOS / RHEL / Fedora:
$ sudo dnf install curl -yKartą 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 versijaJi 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.04Vykdyti 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 / bashGIT_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 psKaip 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ą:
$ ipMano 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: //
Čia,
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į.