Követelmények:
A cikk követéséhez telepítenie kell a Dockert a számítógépére. A LinuxHint sok cikket tartalmaz, amelyeket követhet a Docker telepítéséhez a kívánt Linux disztribúcióra, ha még nincs telepítve. Tehát mindenképpen ellenőrizze a LinuxHint alkalmazást.com arra az esetre, ha problémái adódnak a Docker telepítésével.
A Docker Compose telepítése:
A Docker Compose bináris fájlt nagyon egyszerűen letöltheti a következő paranccsal:
$ 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
JEGYZET: becsavar lehet, hogy nincs telepítve a Linux disztribúcióra. Ebben az esetben a curl programot a következő paranccsal telepítheti:
Ubuntu / Debian / Linux Mint:
$ sudo apt install curl -yCentOS / RHEL / Fedora:
$ sudo dnf install curl -yEgyszer dokkoló-ír bináris fájl letöltve, futtassa a következő parancsot:
$ sudo chmod + x / usr / local / bin / docker-compose
Most ellenőrizze, hogy dokkoló-ír parancs a következőképpen működik:
$ docker-compose verzióKi kell nyomtatnia a verzióinformációt az alábbi képernyőképen látható módon.
A Docker Compose beállítása a projekthez:
Most hozzon létre egy projekt könyvtárat ~ / dokkoló / gitserver (mondjuk) és a repók / és stb/ könyvtár a projekt könyvtárban a git tárolók és néhány konfigurációs fájl megőrzéséhez.
$ mkdir -p ~ / docker / gitserver / repók stb.
Most keresse meg a projekt könyvtárat ~ / dokkoló / gitserver alábbiak szerint:
$ cd ~ / docker / gitserver
Így kell kinéznie a projekt fának. Itt van 2 fájlom, git.konf és git-create-repo.SH ban,-ben stb/ Könyvtár. Egy üres repók / könyvtár az összes Git-tár tárolásához. A gitserver.Dockerfile egyedi Git HTTP szerver Docker tároló felépítéséhez és a dokkoló-ír.yaml fájl.
A. Tartalma gitserver.Dockerfile:
Az ubuntuból: 18.04Futtassa az apt 2. frissítést> / dev / null
RUN apt apt -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias átírni
RUN mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
MÁSOLAT ./ etc / git.conf / etc / apache2 / sites-available / git.konf
MÁSOLAT ./ etc / git-create-repo.sh / usr / bin / mkrepo
RUN futtassa a chmod + x / usr / bin / mkrepo parancsot
RUN a2dissite 000-default.konf
RUN a2ensite git.konf
RUN git config - rendszer http.Receivepack true
RUN git config - rendszer http.uploadpack true
ENV APACHE_RUN_USER www-adatok
ENV APACHE_RUN_GROUP www-adatok
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 ELŐRE
80-as expozíció / tcp
A tartalom etc / git.konf Apache konfigurációs fájl:
ServerAdmin webmester @ localhost
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias / / usr / lib / git-core / git-http-backend /
Álnév / / var / www / git
Opciók + ExecCGI -MultiViews + SymLinksIfOwnerMatch
Nincs AllowOverride
Minden megköveteltet megkövetel
DocumentRoot / var / www / html
Opciók Indexek FollowSymLinks MultiViews
Nincs AllowOverride
Minden megköveteltet megkövetel
ErrorLog $ APACHE_LOG_DIR / hiba.napló
A LogLevel figyelmeztet
CustomLog $ APACHE_LOG_DIR / hozzáférés.rönk együtt
A. Tartalma etc / git-create-repo.SH Shell szkript:
#!/ bin / bashGIT_DIR = "/ var / www / git"
REPO_NAME = $ 1
mkdir -p "$ GIT_DIR / $ REPO_NAME.git "
cd "$ GIT_DIR / $ REPO_NAME.git "
git init - csupasz &> / dev / null
érintse meg a git-daemon-export-ok gombot
cp horgok / frissítés utáni.minta horgok / frissítés utáni
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
"$ REPO_NAME" Git-tároló létrehozva itt: $ GIT_DIR / $ REPO_NAME.git "
Végül a dokkoló-ír.yaml fájl:
verzió: "3.7 "szolgáltatások:
git-server:
épít:
dockerfile: gitserver.Dockerfile
kontextus: .
újraindítás: mindig
portok:
- "8080: 80"
kötetek:
- ./ repos: / var / www / git
Git HTTP Server Docker kép építése:
Most a Git HTTP Server dokkoló képének elkészítéséhez futtassa a következő parancsot:
$ docker-compose build
Egy egyedi Docker-kép elkészítése eltarthat egy ideig.
Ezen a ponton fel kell építeni a Docker képet.
Valahányszor bármilyen módosítást végez a gitserver.Dockerfile, etc / git.konf, etc / git-create-repo.SH fájlt, a Docker képet a dokkoló-komponáló felépítés parancs.
A Git HTTP Server indítása:
Most kezdjem a git-server szolgáltatás futtassa a következő parancsot:
$ docker-compose up -d
A git-server a szolgáltatásnak a háttérben kell kezdődnie.
A portok leképezésének megtekintéséhez futtassa a következő parancsot:
$ docker-compose psMint láthatja, a git-server szolgáltatás, a Docker gazdagép portja 8080 a konténer TCP portjához van hozzárendelve 80.
Új Git-tár létrehozása a szerveren:
Új Git-tár létrehozása teszt (tegyük fel) a Git HTTP kiszolgáló tárolóján futtassa a következő parancsot:
$ docker-compose exec git-server mkrepo teszt
Új Git-tár teszt létre kell hozni.
A Docker Host IP-címének megkeresése:
Ha a hálózat más számítógépeiről szeretne hozzáférni a Git HTTP szerverhez, akkor tudnia kell a Docker gazdagép IP-címét.
A Docker-állomás IP-címének megtalálásához futtassa a következő parancsot:
$ ipEsetemben a Docker gazdagépem IP-címét 192.168.20.160. Neked más lesz. Tehát mindenképpen cserélje le mostantól a sajátjára.
Hozzáférés a Git adattárakhoz a szerverről:
A Git adattárakhoz a kiszolgálón férhet hozzá a http: // URL használatával
Itt,
Tehát az én esetemben a teszt adattárban az URL-nek http: // 192 kell lennie.168.20.160: 8080 / teszt.git
Most a következő módon klónozhatja a teszt Git adattárat a szerverről:
$ git klón http: // 192.168.20.160: 8080 / teszt.git
Mint látható, az adattár klónozása sikeres. De jelenleg üres.
Új könyvtár teszt/ létre kell hozni.
$ ls
Navigáljon a teszt/ Könyvtár.
$ cd teszt /
Végezzen el néhány változtatást és hajtsa végre.
$ echo "welcome to git-server"> üzenet.txt$ git add -A
$ git elkötelezettség -m 'kezdeti elkötelezettség'
$ git log - online
Most a következőképpen nyomja meg a módosításokat a kiszolgálón:
$ git push origó mester
Amint láthatja, az elkötelezettségeket sikeresen elküldte a Git HTTP szervernek.
Most valaki más klónozhatja a teszt Git adattárat is.
$ git klón http: // 192.168.20.160: 8080 / teszt.git
Navigáljon a teszt/ Könyvtár.
$ cd teszt /
És ott találja meg a változásokat.
A Git HTTP-kiszolgáló leállítása:
Megállítani a git-server szolgáltatás futtassa a következő parancsot:
$ docker-compose down
A git-server a szolgáltatást le kell állítani.
Így állította be a Git HTTP szervert a Docker használatával. Köszönjük, hogy elolvasta ezt a cikket.