Lučki radnik

Postavite Git HTTP poslužitelj na Dockeru

Postavite Git HTTP poslužitelj na Dockeru
Git HTTP poslužitelj vrlo je koristan za ljude koji žele privatno raditi i surađivati ​​na projektima. U ovom članku pokazat ću vam kako postaviti HTTP dostupan Git poslužitelj pomoću Docker Compose.  Pa, krenimo.

Zahtjevi:

Da biste pratili ovaj članak, na računalu morate imati instaliran Docker. LinuxHint ima puno članaka koje možete pratiti kako biste instalirali Docker na željenu Linux distribuciju ako ga već niste instalirali. Dakle, svakako provjerite LinuxHint.com u slučaju da imate problema s instaliranjem Dockera.

Instaliranje Dockera Compose:

Binarnu datoteku Docker Compose možete preuzeti vrlo jednostavno pomoću sljedeće naredbe:

$ 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

BILJEŠKA: kovrča možda neće biti instaliran na vašoj Linux distribuciji. Ako je to slučaj, možete instalirati curl pomoću sljedeće naredbe:

Kovnica Ubuntu / Debian / Linux:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf instaliraj curl -y

Jednom docker-compose binarna datoteka se preuzima, pokrenite sljedeću naredbu:

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

Sada provjeri da li docker-compose naredba radi na sljedeći način:

$ docker-compose verzija

Trebao bi ispisati podatke o verziji kao što je prikazano na snimci zaslona u nastavku.

Postavljanje Docker Compose za projekt:

Sada izradite direktorij projekta ~ / docker / gitserver (recimo) i a repo poslovi / i itd / direktorij unutar direktorija projekta za čuvanje git spremišta i nekih konfiguracijskih datoteka.

$ mkdir -p ~ / docker / gitserver / repos, itd.

Sada se pomaknite do direktorija projekta ~ / docker / gitserver kako slijedi:

$ cd ~ / docker / gitserver

Ovako bi trebalo izgledati stablo projekata. Evo, imam 2 datoteke, git.konf i git-create-repo.sh u itd / imenik. Prazan repo poslovi / direktorij za čuvanje svih Git spremišta. A gitserver.Dockerfile za izgradnju prilagođenog spremnika Docker poslužitelja Git HTTP i a docker-compose.yaml datoteka.

Sadržaj gitserver.Dockerfile:

OD ubuntu: 18.04
POKRENI apt ažuriranje 2> / dev / null
POKRENI apt install -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias prepiši
POKRENI mkdir / var / www / git
RUNI chown -Rfv www-data: www-data / var / www / git
KOPIRATI ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOPIRATI ./ etc / git-create-repo.sh / usr / bin / mkrepo
POKRENI chmod + x / usr / bin / mkrepo
RUN a2dissite 000-zadano.konf
POKRENI a2ensite git.konf
POKRENI git config --sustav http.receivepack true
POKRENI git config --sustav http.uploadpack istina
ENV APACHE_RUN_USER www-podaci
ENV APACHE_RUN_GROUP www-podaci
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 PREDHOD
IZLOŽITE 80 / tcp

Sadržaj itd. / git.konf Apache konfiguracijska datoteka:


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
 

Opcije + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride None
Zahtijevaj sve odobreno

 
DocumentRoot / var / www / html
 

Indeksi opcija FollowSymLinks MultiViews
AllowOverride None
Zahtijevaj sve odobreno

ErrorLog $ APACHE_LOG_DIR / error.zapisnik
LogLevel upozoriti
CustomLog $ APACHE_LOG_DIR / pristup.trupac kombiniran

Sadržaj itd. / git-create-repo.sh Scenarij školjke:

#!/ 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
dodirnite git-daemon-export-ok
cp kuke / naknadno ažuriranje.uzorci udica / naknadno ažuriranje
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "Git spremište '$ REPO_NAME' stvoreno u $ GIT_DIR / $ REPO_NAME.git "

Konačno, sadržaj docker-compose.yaml datoteka:

inačica: "3.7 "
usluge:
git-poslužitelj:
izgraditi:
dockerfile: gitserver.Dockerfile
kontekst: .
ponovno pokretanje: uvijek
luke:
- "8080: 80"
svezaka:
- ./ repos: / var / www / git

Izgradnja slike Git HTTP poslužitelja Docker:

Sada, za izgradnju slike dockera Git HTTP poslužitelja, pokrenite sljedeću naredbu:

$ docker-compose build

Izrada prilagođene Dockerove slike može potrajati.

U ovom trenutku trebala bi se izgraditi Dockerova slika.

Kad god napravite bilo kakve promjene na bilo kojem od gitserver.Dockerfile, itd. / git.konf, itd. / git-create-repo.sh datoteku, morate obnoviti Docker sliku koristeći docker-compose graditi naredba.

Pokretanje Git HTTP poslužitelja:

Sada, za početak git-poslužitelj uslugu, pokrenite sljedeću naredbu:

$ docker-compose up -d

The git-poslužitelj usluga bi trebala započeti u pozadini.

Da biste vidjeli kako se mapiraju luke, pokrenite sljedeću naredbu:

$ docker-komponiraj ps

Kao što vidite, za git-poslužitelj usluga, priključak Dockera 8080 preslikava se na TCP port spremnika 80.

Izrada novog Git spremišta na poslužitelju:

Da biste stvorili novo Git spremište test (recimo) na spremniku Git HTTP poslužitelja, pokrenite sljedeću naredbu:

$ docker-compose exec git-server mkrepo test

Novo Git spremište test treba stvoriti.

Pronalaženje IP adrese domaćina Dockera:

Ako želite pristupiti Git HTTP poslužitelju s drugih računala u mreži, morate znati IP adresu vašeg Dockera hosta.

Da biste pronašli IP adresu vašeg Dockera, pokrenite sljedeću naredbu:

$ ip

U mom slučaju, IP adresa mog domaćina Dockera 192.168.20.160. Za vas će biti drugačije. Pazite da ga od sada zamijenite svojim.

Pristup Git spremištima s poslužitelja:

Git spremištima na poslužitelju možete pristupiti putem URL-a http: //: 8080 /.git

Ovdje,

je IP adresa vašeg domaćina Dockera.

je naziv spremišta Git na Git HTTP poslužitelju.

Dakle, u mom slučaju, za test spremište, URL bi trebao biti http: // 192.168.20.160: 8080 / test.git

Sada možete klonirati testno Git spremište s poslužitelja na sljedeći način:

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

Kao što vidite, spremište je uspješno klonirano. Ali trenutno je prazan.

Novi direktorij test/ treba stvoriti.

$ ls

Idite na test/ imenik.

$ cd test /

Sada napravite neke promjene i izvršite ih.

$ echo "dobrodošla na git-server"> poruku.txt
$ git dodaj -A
$ git commit -m 'početno predavanje'
$ git log --oneline

Sada pritisnite promjene na poslužitelju kako slijedi:

$ git push master master

Kao što vidite, predaje se uspješno šalju na Git HTTP poslužitelj.

Sad netko drugi može klonirati i testno Git spremište.

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

Idite na test/ imenik.

$ cd test /

I tamo pronađite promjene.

Zaustavljanje Git HTTP poslužitelja:

Za zaustavljanje git-poslužitelj uslugu, pokrenite sljedeću naredbu:

$ docker-sastavi dolje

The git-poslužitelj uslugu treba zaustaviti.

Dakle, tako postavljate Git HTTP poslužitelj pomoću Dockera. Hvala što ste pročitali ovaj članak.

Top 5 ergonomskih proizvoda za računalni miš za Linux
Uzrokuje li dugotrajno korištenje računala bolove u zapešću ili prstima? Patite li od ukočenih zglobova i stalno se morate rukovati? Osjećate li goruć...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...