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 -yCentOS / RHEL / Fedora:
$ sudo dnf installer krølle -yEnkelt 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-versionDet 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.04KØ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 / bashGIT_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 psSom 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:
$ ipI 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: //
Her,
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.