Krav:
For å følge denne artikkelen, må du ha Docker installert på datamaskinen din. Linuxhint har mange artikler som du kan følge for å installere Docker på ønsket Linux -distribusjon hvis du ikke har den installert allerede. Så husk å sjekke Linuxhint.com i tilfelle du har problemer med å installere docker.
Installere Docker Compose:
Du kan laste ned Docker Compose Binary File veldig enkelt med følgende kommando:
$ sudo curl -l "https: // github.com/docker/kompose/utgivelser/nedlasting/1.24.1/
Docker-Compose-$ (Uname -s)-$ (Uname -m) "-o/usr/local/bin/docker-compose
MERK: krøll kan ikke installeres på Linux -distribusjonen din. Hvis det er tilfelle, kan du installere Curl med følgende kommando:
Ubuntu/Debian/Linux Mint:
$ sudo apt install curl -y
Centos/RHEL/Fedora:
$ sudo dnf install curl -y
En gang Docker-Compose Binærfil lastes ned, kjør følgende kommando:
$ sudo chmod +x/usr/local/bin/docker-compose
Nå, sjekk om Docker-Compose Kommandoen fungerer som følger:
$ Docker-Compose-versjon
Den skal skrive ut versjonsinformasjonen som vist på skjermdumpen nedenfor.
Sette opp Docker -komponering for prosjektet:
Lag nå en prosjektkatalog ~/docker/gitserver (La oss si) og en repos/ og etc/ Katalog i prosjektkatalogen for å holde Git -lagringene og noen konfigurasjonsfiler.
$ mkdir -p ~/docker/gitserver/repos, etc
Naviger nå til prosjektkatalogen ~/docker/gitserver følgende:
$ cd ~/docker/gitserver
Slik skal prosjekttreet se ut. Her har jeg 2 filer, git.konf og git-create-repo.sh i etc/ katalog. En tom repos/ Katalog for å beholde alle Git -lagringene. EN Gitserver.Dockerfile For å bygge en tilpasset Git http server docker container og en Docker-Compose.Yaml fil.
Innholdet i Gitserver.Dockerfile:
Fra Ubuntu: 18.04
Kjør apt oppdatering 2>/dev/null
Kjør Apt Install -y Git Apache2 Apache2 -UTILS 2>/dev/null
Kjør a2enmod env CGI alias omskrives
Kjør mkdir/var/www/git
Kjør Chown -RFV www-data: www-data/var/www/git
KOPIERE ./etc/git.Conf/etc/apache2/nettsteder-tilgjengelig/git.konf
KOPIERE ./etc/git-create-repo.sh/usr/bin/mkrepo
Kjør ChMod +X/usr/bin/mkrepo
Kjør a2dissite 000-default.konf
Kjør a2ensite git.konf
Kjør Git Config -System HTTP.motta Pack True
Kjør Git Config -System HTTP.Last opp pakke
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 forgrunnen
Eksponer 80/TCP
Innholdet i etc/git.konf Apache -konfigurasjonsfil:
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
Alternativer +execcgi -multiViews +symlinksifoWreMatch
Tillat ingen
Krever alt gitt
Documentroot/var/www/html
Alternativerindekser følger Symlinks Multiviews
Tillat ingen
Krever alt gitt
Errorlog $ apache_log_dir/feil.Logg
LogLevel advarer
CustomLog $ apache_log_dir/tilgang.logg kombinert
Innholdet i etc/git-create-repo.sh Shell -skript:
#!/bin/bash
Git_dir = "/var/www/git"
Repo_name = $ 1
mkdir -p "$ git_dir/$ repo_name.Git "
CD "$ git_dir/$ repo_name.Git "
git init - -fair &> /dev /null
Touch git-daemon-export-ok
CP-kroker/post-oppdatering.Eksempelkroker/post-oppdatering
git oppdateringsserver-info
Chown -rf www-data: www-data "$ git_dir/$ repo_name.Git "
Echo "Git Repository '$ repo_name' opprettet i $ git_dir/$ repo_name.Git "
Endelig innholdet i Docker-Compose.Yaml fil:
Versjon: "3.7 "
tjenester:
git-server:
bygge:
DockerFile: Gitserver.Dockerfile
kontekst: .
Start på nytt: Alltid
Porter:
- "8080: 80"
Volum:
- ./repos:/var/www/git
Bygning Git HTTP Server Docker Image:
Nå, for å bygge Git HTTP Server Docker -bildet, kjør følgende kommando:
$ Docker-Compose Build
Det kan ta en stund å bygge et tilpasset Docker -bilde.
På dette tidspunktet skal Docker -bildet bygges.
Når du gjør endringer i noen av Gitserver.Dockerfile, etc/git.konf, etc/git-create-repo.sh fil, du må gjenoppbygge Docker -bildet ved hjelp av Docker-Compose Build kommando.
Start Git HTTP -server:
Nå, for å starte git-server Tjeneste, kjør følgende kommando:
$ docker -compose up -d
De git-server Tjenesten skal starte i bakgrunnen.
For å se hvordan portene er kartlagt, kjør følgende kommando:
$ Docker-Compose Ps
Som du kan se, for git-server Service, Docker Host Port 8080 er kartlagt til containeren TCP -port 80.
Opprette nytt Git -depot på serveren:
For å lage et nytt Git -depot test (La oss si) På GIT HTTP -serverbeholderen, kjør følgende kommando:
$ Docker-Compose Exec Git-Server Mkrepo Test
Et nytt git -depot test bør opprettes.
Finne IP -adressen til Docker -vert:
Hvis du vil få tilgang til GIT HTTP -serveren fra andre datamaskiner i nettverket ditt, må du kjenne IP -adressen til Docker -verten din.
For å finne IP -adressen til Docker -verten din, kjør følgende kommando:
$ ip
I mitt tilfelle er IP -adressen til Docker -verten min 192.168.20.160. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.
Få tilgang til Git -lagringsplasser fra serveren:
Du kan få tilgang til GIT -lagringene på serveren ved å bruke URL http: //: 8080/.git
Her,
er IP -adressen til Docker -verten din.
er Git -depotnavnet i Git HTTP -serveren.
Så i mitt tilfelle, for test depot, URLen skal være http: // 192.168.20.160: 8080/test.git
Nå kan du klone Test Git -depotet fra serveren som følger:
$ git klon http: // 192.168.20.160: 8080/test.git
Som du ser er depotet klonet med hell. Men det er for øyeblikket tomt.
En ny katalog test/ bør opprettes.
$ ls
Naviger til test/ katalog.
$ CD -test/
Nå, gjør noen endringer og begår det.
$ ekko "Velkommen til Git-Server"> Melding.tekst
$ git add -a
$ git commit -m 'initial commit'
$ git log --oneline
Nå, skyv endringene til serveren som følger:
$ git push origin master
Som du ser blir forpliktelsene sendt til Git HTTP -serveren med hell.
Nå kan noen andre klone også testen Git -depotet.
$ git klon http: // 192.168.20.160: 8080/test.git
Naviger til test/ katalog.
$ CD -test/
Og finn endringene der.
Stopper Git HTTP -serveren:
Å stoppe git-server Tjeneste, kjør følgende kommando:
$ Docker-Compose Down
De git-server Tjenesten skal stoppes.
Så det er slik du setter opp en Git HTTP -server ved hjelp av Docker. Takk for at du leste denne artikkelen.