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 -yCentOS / RHEL / Fedora:
$ sudo dnf namestite curl -yEnkrat 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-composeNatisniti 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.04RUN 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 / 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
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 psKot 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:
$ ipV 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: //
Tukaj,
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.