Docker

Opsæt en Git HTTP-server på Docker

Opsæt en Git HTTP-server på Docker
Git HTTP-server er meget nyttig for folk, der ønsker at arbejde og samarbejde om projekter privat. I denne artikel vil jeg vise dig, hvordan du opretter en HTTP-tilgængelig Git-server ved hjælp af Docker Compose.  Så lad os komme i gang.

Krav:

For at følge denne artikel skal du have Docker installeret på din computer. LinuxHint har mange artikler, som du kan følge for at installere Docker på din ønskede Linux-distribution, hvis du ikke allerede har den installeret. Så sørg for at tjekke LinuxHint.com, hvis du har problemer med at installere Docker.

Installation af Docker Compose:

Du kan downloade binær fil til Docker Compose meget let med følgende kommando:

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

BEMÆRK: krølle er muligvis ikke installeret på din Linux-distribution. Hvis det er tilfældet, kan du installere krølle med følgende kommando:

Ubuntu / Debian / Linux Mint:

$ sudo apt install krølle -y

CentOS / RHEL / Fedora:

$ sudo dnf installer krølle -y

Enkelt gang docker-komponere binær fil downloades, kør følgende kommando:

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

Kontroller nu, om docker-komponere kommandoen fungerer som følger:

$ docker-compose-version

Det skal udskrive versionoplysningerne som vist i skærmbilledet nedenfor.

Opsætning af Docker Compose til projektet:

Opret nu et projektmappe ~ / docker / gitserver (lad os sige) og en repos / og etc/ katalog i projektmappen til opbevaring af git-arkiver og nogle konfigurationsfiler.

$ mkdir -p ~ / docker / gitserver / repos osv.

Gå nu til projektmappen ~ / docker / gitserver som følger:

$ cd ~ / docker / gitserver

Sådan skal projekttræet se ud. Her har jeg to filer, git.konf og git-create-repo.sh i etc/ vejviser. En tom repos / mappe til opbevaring af alle Git-arkiver. EN gitserver.Dockerfil til opbygning af en tilpasset Git HTTP-server Docker-container og en docker-komponere.yaml fil.

Indholdet af gitserver.Dockerfil:

FRA ubuntu: 18.04
KØR apt-opdatering 2> / dev / null
KØR apt installation -y git apache2 apache2-utils 2> / dev / null
KØR a2enmod env cgi alias omskrivning
KØR mkdir / var / www / git
KØR chown -Rfv www-data: www-data / var / www / git
KOPI ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOPI ./ etc / git-create-repo.sh / usr / bin / mkrepo
KØR chmod + x / usr / bin / mkrepo
KØR a2dissite 000-standard.konf
KØR a2ensite git.konf
KØR git config --system http.modtagelsespakke sandt
KØR git config --system http.uploadpack sandt
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 FOREGROUND
EKSPONER 80 / tcp

Indholdet af etc / git.konf Apache-konfigurationsfil:


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
 

Valgmuligheder + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Ingen
Kræv alle tildelte

 
DocumentRoot / var / www / html
 

Indstillinger for indstillinger FollowSymLinks MultiViews
AllowOverride Ingen
Kræv alle tildelte

ErrorLog $ APACHE_LOG_DIR / fejl.log
LogLevel advarer
CustomLog $ APACHE_LOG_DIR / adgang.log kombineret

Indholdet af etc / git-create-repo.sh Shell-script:

#!/ 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
tryk på git-dæmon-eksport-ok
cp kroge / efter opdatering.prøve kroge / efter opdatering
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
ekko "Git-lager" $ REPO_NAME "oprettet i $ GIT_DIR / $ REPO_NAME.git "

Endelig indholdet af docker-komponere.yaml fil:

version: "3.7 "
tjenester:
git-server:
bygge:
dockerfile: gitserver.Dockerfil
sammenhæng: .
genstart: altid
porte:
- "8080: 80"
volumener:
- ./ repos: / var / www / git

Bygger Git HTTP Server Docker-billede:

Kør følgende kommando for at opbygge Git HTTP Server-dockerbillede:

$ docker-compose build

Det kan tage et stykke tid at oprette et brugerdefineret Docker-billede.

På dette tidspunkt skal Docker-billedet bygges.

Når du foretager ændringer i nogen af gitserver.Dockerfil, etc / git.konf, etc / git-create-repo.sh fil, skal du genopbygge Docker-billedet ved hjælp af docker-compose build kommando.

Start af Git HTTP-server:

Nu for at starte git-server service, kør følgende kommando:

$ docker-compose op -d

Det git-server service skal starte i baggrunden.

For at se, hvordan portene kortlægges, skal du køre følgende kommando:

$ docker-komponere ps

Som du kan se, for git-server service, Docker-værtsporten 8080 er kortlagt til beholderens TCP-port 80.

Oprettelse af nyt Git-lager på serveren:

For at oprette et nyt Git-arkiv prøve (lad os sige) på Git HTTP-servercontaineren, kør følgende kommando:

$ docker-compose exec git-server mkrepo test

Et nyt Git-arkiv prøve skal oprettes.

Sådan finder du IP-adressen til Docker Host:

Hvis du vil få adgang til Git HTTP-serveren fra andre computere på dit netværk, skal du kende din Docker-værts IP-adresse.

For at finde IP-adressen til din Docker-vært skal du køre følgende kommando:

$ ip

I mit tilfælde IP-adressen på min Docker-vært 192.168.20.160. Det vil være anderledes for dig. Så sørg for at erstatte den med din fra nu af.

Adgang til Git-arkiver fra serveren:

Du kan få adgang til Git-arkiverne på serveren ved hjælp af URL'en http: //: 8080 /.git

Her,

er din Docker Hosts IP-adresse.

er Git-lagernavnet i Git HTTP-serveren.

Så i mit tilfælde for prøve repository, URL'en skal være http: // 192.168.20.160: 8080 / test.git

Nu kan du klone test Git-arkivet fra serveren som følger:

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

Som du kan se, kloner arkivet med succes. Men det er i øjeblikket tomt.

En ny mappe prøve/ skal oprettes.

$ ls

Naviger til prøve/ vejviser.

$ cd test /

Foretag nu nogle ændringer og begår det.

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

Skub nu ændringer til serveren som følger:

$ git push oprindelsesmester

Som du kan se, sendes forpligtelserne med succes til Git HTTP-serveren.

Nu kan en anden også klone test Git-arkivet.

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

Naviger til prøve/ vejviser.

$ cd test /

Og find ændringerne der.

Stop af Git HTTP-server:

For at stoppe git-server service, kør følgende kommando:

$ docker-komponer ned

Det git-server service skal stoppes.

Så det er sådan, du opretter en Git HTTP-server ved hjælp af Docker. Tak, fordi du læste denne artikel.

Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...