Docker

Sett opp en Git HTTP-server på Docker

Sett opp en Git HTTP-server på Docker
Git HTTP-server er veldig nyttig for folk som ønsker å jobbe og samarbeide om prosjekter privat. I denne artikkelen skal jeg vise deg hvordan du setter opp en HTTP-tilgjengelig Git-server ved hjelp av Docker Compose.  Så la oss komme i gang.

Krav:

For å følge denne artikkelen må du ha Docker installert på datamaskinen din. LinuxHint har mange artikler du kan følge for å installere Docker på ønsket Linux-distribusjon hvis du ikke allerede har den installert. Så husk å sjekke LinuxHint.com i tilfelle du har problemer med å installere Docker.

Installere Docker Compose:

Du kan laste ned binærfil for Docker veldig enkelt med følgende kommando:

$ sudo curl -L "https: // github.com / docker / komponere / utgivelser / nedlasting / 1.24.1/
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

MERK: krølle kan ikke være installert på din Linux-distribusjon. Hvis det er tilfelle, kan du installere krøll med følgende kommando:

Ubuntu / Debian / Linux Mint:

$ sudo apt install krøll -y

CentOS / RHEL / Fedora:

$ sudo dnf installer krøll -y

En gang docker-komponere binær fil lastes ned, kjør følgende kommando:

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

Sjekk nå om docker-komponere kommandoen fungerer som følger:

$ docker-compose-versjon

Den skal skrive ut versjonsinformasjonen som vist på skjermbildet nedenfor.

Sette opp Docker Compose for prosjektet:

Opprett nå en prosjektkatalog ~ / docker / gitserver (la oss si) og en repos / og etc/ katalogen i prosjektkatalogen for å beholde git-arkivene og noen konfigurasjonsfiler.

$ mkdir -p ~ / docker / gitserver / repos, etc

Gå nå til prosjektkatalogen ~ / docker / gitserver som følger:

$ cd ~ / docker / gitserver

Slik skal prosjekttreet se ut. Her har jeg to filer, git.konf og git-create-repo.sh i etc/ katalog. En tom repos / katalog for å beholde alle Git-arkivene. EN gitserver.Dockerfil for å bygge en tilpasset Git HTTP-server Docker-container og en docker-komponere.yaml fil.

Innholdet i gitserver.Dockerfil:

FRA ubuntu: 18.04
KJØR apt oppdatering 2> / dev / null
KJØR apt installer -y git apache2 apache2-utils 2> / dev / null
KJØR a2enmod env cgi alias omskriv
KJØR mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
KOPIERE ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOPIERE ./ etc / git-create-repo.sh / usr / bin / mkrepo
KJØR chmod + x / usr / bin / mkrepo
KJØR a2dissite 000-standard.konf
LØP a2ensite git.konf
RUN git config --system http.mottakspakke sant
RUN git config --system http.uploadpack true
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 FORGRUNN
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 + SymLinksIfOwnerMatch
Tillat overstyring Ingen
Krev alle gitt

 
DocumentRoot / var / www / html
 

Alternativer Indekser FollowSymLinks MultiViews
Tillat overstyring 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 Skallskript:

#!/ 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 --bare &> / dev / null
berør git-daemon-export-ok
cp kroker / etter oppdatering.prøve kroker / etter oppdatering
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ekko "Git-depotet" $ REPO_NAME "opprettet i $ GIT_DIR / $ REPO_NAME.git "

Til slutt, innholdet i docker-komponere.yaml fil:

versjon: "3.7 "
tjenester:
git-server:
bygge:
dockerfile: gitserver.Dockerfil
kontekst: .
start på nytt: alltid
porter:
- "8080: 80"
volumer:
- ./ repos: / var / www / git

Bygger Git HTTP Server Docker Image:

Nå, for å bygge Git HTTP Server docker-bildet, kjører du følgende kommando:

$ docker-compose build

Det kan ta litt tid å bygge et tilpasset Docker-bilde.

På dette tidspunktet skal Docker-bildet bygges.

Når du gjør endringer i noen av gitserver.Dockerfil, etc / git.konf, etc / git-create-repo.sh må du gjenoppbygge Docker-bildet ved hjelp av docker-compose build kommando.

Starter Git HTTP-server:

Nå, for å starte git-server service, 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-komponere ps

Som du kan se, for git-server tjenesten, Docker-vertsporten 8080 er kartlagt til beholderens TCP-port 80.

Opprette nytt Git-arkiv på serveren:

Å 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 skal opprettes.

Finne IP-adressen til Docker Host:

Hvis du vil få tilgang til Git HTTP-serveren fra andre datamaskiner i nettverket ditt, må du vite IP-adressen til Docker-verten din.

For å finne IP-adressen til Docker-verten din, kjør følgende kommando:

$ ip

I mitt tilfelle IP-adressen til min Docker-vert 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-arkiver fra serveren:

Du kan få tilgang til Git-arkivene på serveren ved hjelp av URL http: //: 8080 /.git

Her,

er IP-adressen til Docker Host.

er Git-depotnavnet i Git HTTP-serveren.

Så, i mitt tilfelle, for test repository, URL-adressen 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 kan se, er lagringsområdet klonet. Men den er for øyeblikket tom.

En ny katalog test/ skal opprettes.

$ ls

Naviger til test/ katalog.

$ cd test /

Gjør nå noen endringer og begå det.

$ echo "velkommen til git-server"> melding.tekst
$ git add -A
$ git commit -m 'initial commit'
$ git log --online

Nå skyver du endringene til serveren som følger:

$ git push origin master

Som du kan se, sendes forpliktelsene til Git HTTP-serveren.

Nå kan noen andre også klone test Git-arkivet.

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

Naviger til test/ katalog.

$ cd test /

Og finn endringene der.

Stoppe Git HTTP-serveren:

For å stoppe git-server service, kjør følgende kommando:

$ docker-komponer ned

De git-server tjenesten skal stoppes.

Så det er slik du konfigurerer en Git HTTP-server ved hjelp av Docker. Takk for at du leser denne artikkelen.

Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...
Topp Oculus App Lab-spill
Hvis du er Oculus-hodesettinnehaver, må du være klar over sideloading. Sidelading er prosessen med å installere ikke-butikkinnhold på hodesettet. Side...
Topp 10 spill å spille på Ubuntu
Windows-plattformen har vært en av de dominerende plattformene for spill på grunn av den enorme andelen spill som utvikles i dag for å støtte Windows ...