Docker

V Dockerju nastavite strežnik Git HTTP

V Dockerju nastavite strežnik Git HTTP
Strežnik Git HTTP je zelo koristen za ljudi, ki želijo zasebno delati in sodelovati pri projektih. V tem članku vam bom pokazal, kako nastaviti HTTP dostopen Git strežnik z Docker Compose.  Torej, začnimo.

Zahteve:

Če želite slediti temu članku, morate imeti v računalniku nameščen Docker. LinuxHint ima veliko člankov, po katerih lahko namestite Docker na želeno distribucijo Linuxa, če ga še nimate nameščenega. Torej, ne pozabite preveriti LinuxHint.com, če imate težave z namestitvijo Dockerja.

Namestitev Docker Compose:

Binarno datoteko Docker Compose lahko zelo enostavno prenesete z naslednjim ukazom:

$ 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

OPOMBA: curl morda ni nameščen na vaši distribuciji Linuxa. V tem primeru lahko curl namestite z naslednjim ukazom:

Kovnica Ubuntu / Debian / Linux:

$ sudo apt namestite curl -y

CentOS / RHEL / Fedora:

$ sudo dnf namestite curl -y

Enkrat docker-compose binarna datoteka se prenese, zaženite naslednji ukaz:

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

Zdaj pa preverite, ali docker-compose ukaz deluje na naslednji način:

Različica $ docker-compose

Natisniti mora informacije o različici, kot je prikazano na spodnjem posnetku zaslona.

Nastavitev Docker Compose za projekt:

Zdaj ustvarite imenik projekta ~ / docker / gitserver (recimo) in a repos / in itd / imenik znotraj imenika projekta za shranjevanje git repozitorijev in nekaterih konfiguracijskih datotek.

$ mkdir -p ~ / docker / gitserver / skladišča itd.

Zdaj se pomaknite do imenika projekta ~ / docker / gitserver kot sledi:

$ cd ~ / docker / gitserver

Tako bi moralo izgledati projektno drevo. Tukaj imam dve datoteki, git.conf in git-create-repo.sh v itd / imenik. Prazno repos / imenik za shranjevanje vseh skladišč Git. A gitserver.Dockerfile za izdelavo vsebnika Docker strežnika Git HTTP in a docker-compose.yaml mapa.

Vsebina gitserver.Dockerfile:

OD ubuntu: 18.04
RUN apt update 2> / dev / null
RUN apt install -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias rewrite
TEČI mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
KOPIRATI ./ etc / git.conf / etc / apache2 / sites-available / git.conf
KOPIRATI ./ etc / git-create-repo.sh / usr / bin / mkrepo
RUN chmod + x / usr / bin / mkrepo
RUN a2dissite 000-privzeto.conf
RUN a2ensite git.conf
RUN git config --system http.prejmi paket res
RUN git config --system http.uploadpack res
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
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
IZPOSTAVITE 80 / tcp

Vsebina itd / git.conf Konfiguracijska datoteka Apache:


ServerAdmin spletni skrbnik @ localhost
 
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/ / usr / lib / git-core / git-http-backend /
 
Vzdevek / / var / www / git
 

Možnosti + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Brez
Zahtevaj vse odobreno

 
DocumentRoot / var / www / html
 

Kazalo možnosti Možnosti FollowSymLinks MultiViews
AllowOverride Brez
Zahtevaj vse odobreno

ErrorLog $ APACHE_LOG_DIR / error.log
Opozorilo LogLevel
CustomLog $ APACHE_LOG_DIR / dostop.dnevnik kombiniran

Vsebina etc / git-create-repo.sh Skript lupine:

#!/ 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
dotaknite se git-daemon-export-ok
cp kljuke / po posodobitvi.vzorčne kljuke / po posodobitvi
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "Git repozitorij '$ REPO_NAME' ustvarjen v $ GIT_DIR / $ REPO_NAME.git "

Končno, vsebina docker-compose.yaml mapa:

različica: "3.7 "
storitve:
git-strežnik:
graditi:
dockerfile: gitserver.Dockerfile
kontekst: .
ponovni zagon: vedno
vrata:
- "8080: 80"
prostornine:
- ./ repos: / var / www / git

Izdelava slike Docker strežnika Git HTTP:

Zdaj, da zgradite sliko dockerja Git HTTP Server, zaženite naslednji ukaz:

$ docker-compose build

Izdelava slike Dockerja po meri lahko traja nekaj časa.

Na tej točki je treba zgraditi Dockerjevo sliko.

Kadar koli spremenite katero koli datoteko gitserver.Dockerfile, itd / git.conf, etc / git-create-repo.sh datoteko, morate znova zgraditi sliko Dockerja docker-compose build ukaz.

Zagon strežnika Git HTTP:

Zdaj pa za začetek git-strežnik storitev, zaženite naslednji ukaz:

$ docker-compose up -d

The git-strežnik storitev naj se začne v ozadju.

Če si želite ogledati preslikavo vrat, zaženite naslednji ukaz:

$ docker-compose ps

Kot lahko vidite, za git-strežnik gostiteljska vrata Docker 8080 se preslika v vrata TCP vsebnika 80.

Ustvarjanje novega skladišča Git na strežniku:

Ustvarjanje novega skladišča Git preskus (recimo) na zabojniku strežnika Git HTTP zaženite naslednji ukaz:

$ docker-compose exec git-server mkrepo test

Novo skladišče Git preskus je treba ustvariti.

Iskanje naslova IP gostitelja Docker:

Če želite dostopati do strežnika Git HTTP iz drugih računalnikov v omrežju, morate poznati naslov IP vašega gostitelja Docker.

Če želite najti naslov IP gostitelja Docker, zaženite naslednji ukaz:

$ ip

V mojem primeru naslov IP mojega gostitelja Docker 192.168.20.160. Za vas bo drugače. Zato ga odslej zamenjajte s svojim.

Dostop do skladišč Git s strežnika:

Do skladišč Git na strežniku lahko dostopate z URL-jem http: //: 8080 /.git

Tukaj,

je naslov IP vašega gostitelja Docker.

je ime repozitorija Git v strežniku Git HTTP.

Torej, v mojem primeru za preskus repozitorija, mora biti URL http: // 192.168.20.160: 8080 / test.git

Zdaj lahko preskusno repozitorij Git klonirate s strežnika, kot sledi:

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

Kot lahko vidite, je skladišče uspešno klonirano. Ampak trenutno je prazen.

Nov imenik preizkus / je treba ustvariti.

$ ls

Pomaknite se do preizkus / imenik.

$ cd test /

Zdaj pa naredite nekaj sprememb in se zavežite.

$ echo "dobrodošlo na git-server"> sporočilo.txt
$ git add -A
$ git commit -m 'začetna odobritev'
$ git log --oneline

Zdaj spremembe potisnite na strežnik, kot sledi:

$ git push izvorni mojster

Kot lahko vidite, se zaveze uspešno pošljejo strežniku Git HTTP.

Zdaj lahko nekdo drug klonira tudi testno skladišče Git.

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

Pomaknite se do preizkus / imenik.

$ cd test /

In tam poiščite spremembe.

Zaustavitev strežnika Git HTTP:

Če želite ustaviti git-strežnik storitev, zaženite naslednji ukaz:

$ docker-compose dol

The git-strežnik storitev je treba ustaviti.

Torej, tako nastavite strežnik Git HTTP z Dockerjem. Hvala, ker ste prebrali ta članek.

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...