Nõuded:
Selle artikli järgimiseks peab teie arvutisse olema installitud Docker. LinuxHintil on palju artikleid, mida saate järgida Dockeri installimiseks soovitud Linuxi jaotisse, kui te pole seda veel installinud. Seega kontrollige kindlasti LinuxHinti.com juhul, kui teil on probleeme Dockeri installimisega.
Docker Compose'i installimine:
Docker Compose binaarfaili saate järgmise käsuga hõlpsalt alla laadida:
$ 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
MÄRGE: lokkima ei pruugi teie Linuxi distributsiooni installida. Sel juhul saate curli installida järgmise käsuga:
Ubuntu / Debian / Linux Mint:
$ sudo apt install curl -yCentOS / RHEL / Fedora:
$ sudo dnf install curl -yÜkskord dokk-komponeerima binaarfail on alla laaditud, käivitage järgmine käsk:
$ sudo chmod + x / usr / local / bin / docker-compose
Nüüd kontrollige, kas dokk-komponeerima käsk töötab järgmiselt:
$ docker-compose versioonSee peaks printima versiooni teabe, nagu on näidatud alloleval ekraanipildil.
Dockeri kirjutamise seadistamine projekti jaoks:
Nüüd looge projekti kataloog ~ / dokkija / gitserver (ütleme nii) ja a repod / ja jne/ projekti kataloogis olev git hoidlate ja mõne konfiguratsioonifaili hoidmiseks.
$ mkdir -p ~ / docker / gitserver / repod jne
Nüüd navigeerige projekti kataloogi ~ / dokkija / gitserver järgnevalt:
$ cd ~ / docker / gitserver
Nii peaks projekti puu välja nägema. Siin on mul 2 faili, git.konf ja git-loo-repo.sh aastal jne/ kataloogi. Tühi repod / kataloog kõigi Giti hoidlate hoidmiseks. A gitserver.Dockerfile kohandatud Git HTTP serveri Dockeri konteineri ja a dokk-komponeerima.yaml faili.
Programmi sisu gitserver.Dockerfile:
Ubuntust: 18.04Käivitage apt update 2> / dev / null
KÄIVITA apt install -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias kirjutada
KÄIVITA mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
KOOPIA ./ etc / git.conf / etc / apache2 / sites-available / git.konf
KOOPIA ./ etc / git-create-repo.sh / usr / bin / mkrepo
Käivitage chmod + x / usr / bin / mkrepo
RUN a2dissite 000-vaikimisi.konf
RUN a2ensite git.konf
RUN git config - süsteem http.Receivepack true
RUN git config - süsteem http.uploadpack true
ENV APACHE_RUN_USER www-andmed
ENV APACHE_RUN_GROUP www-andmed
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 EELTULE
KOKKUPUUDE 80 / tk
Sisu sisu etc / git.konf Apache'i konfiguratsioonifail:
ServerAdmini veebimeister @ 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
Valikud + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Puudub
Nõua kõik lubatud
DocumentRoot / var / www / html
Valikud Indeksid FollowSymLinks MultiViews
AllowOverride Puudub
Nõua kõik lubatud
ErrorLog $ APACHE_LOG_DIR / viga.logi
LogLevel hoiatab
CustomLog $ APACHE_LOG_DIR / juurdepääs.palk kokku
Programmi sisu etc / git-create-repo.sh Shelli skript:
#!/ bin / bashGIT_DIR = "/ var / www / git"
REPO_NAME = $ 1
mkdir -p "$ GIT_DIR / $ REPO_NAME.git "
CD "$ GIT_DIR / $ REPO_NAME.git "
git init - paljas &> / dev / null
puudutage git-daemon-export-ok
cp konksud / värskendusjärgne.proovikonksud / värskendusjärgne
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
kaja "Giti hoidla" $ REPO_NAME ", mis on loodud asukohas $ GIT_DIR / $ REPO_NAME.git "
Lõpuks, sisu dokk-komponeerima.yaml fail:
versioon: "3.7 "teenused:
git-server:
ehitada:
dockerfile: gitserver.Dockerfile
Sisu: .
taaskäivitage: alati
sadamad:
- "8080: 80"
mahud:
- ./ repos: / var / www / git
Giti HTTP-serveri dokkimispildi loomine:
Nüüd Git HTTP Serveri dokkimispildi loomiseks käivitage järgmine käsk:
$ docker-compose järk
Kohandatud Dockeri pildi loomiseks võib kuluda aega.
Siinkohal tuleks ehitada Dockeri pilt.
Alati, kui teete mis tahes muudatusi gitserver.Dockerfile, jne / git.konf, etc / git-create-repo.sh faili, peate Dockeri pildi uuesti üles ehitama dokkija-komponeeritav ehitis käsk.
Giti HTTP-serveri käivitamine:
Nüüd, et alustada git-server teenuse käivitage järgmine käsk:
$ docker-compose up -d
The git-server teenus peaks algama taustal.
Pordide kaardistamise nägemiseks käivitage järgmine käsk:
$ docker-compose psNagu näete, git-server teenus, Dockeri hostisadam 8080 on kaardistatud konteineri TCP-porti 80.
Uue Giti hoidla loomine serveris:
Uue Giti hoidla loomiseks test (oletame) Git HTTP-serveri konteineris käivitage järgmine käsk:
$ docker-compose exec git-server mkrepo test
Uus Giti hoidla test tuleks luua.
Dockeri hosti IP-aadressi leidmine:
Kui soovite Git HTTP-serverile juurde pääseda teistest võrgu arvutitest, peate teadma oma Dockeri hosti IP-aadressi.
Dockeri hosti IP-aadressi leidmiseks käivitage järgmine käsk:
$ ipMinu puhul minu Dockeri hosti IP-aadress 192.168.20.160. Teie jaoks on see erinev. Niisiis, asendage see edaspidi kindlasti oma omaga.
Giti hoidlatele pääsemine serverist:
Giti hoidlatele pääsete juurde serveris, kasutades URL-i http: //
Siin,
Nii et minu puhul test hoidlas peaks URL olema http: // 192.168.20.160: 8080 / test.git
Nüüd saate test Giti hoidla serverist kloonida järgmiselt:
$ giti kloon http: // 192.168.20.160: 8080 / test.git
Nagu näete, kloonitakse hoidla edukalt. Kuid see on praegu tühi.
Uus kataloog test / tuleks luua.
$ ls
Navigeerige lehele test / kataloogi.
$ cd test /
Tehke nüüd mõned muudatused ja tehke see.
$ echo "welcome to git-server"> sõnum.txt$ git lisa -A
$ git pühendus -m 'esialgne kohustus'
$ git log - oneline
Nüüd lükake muudatused serverisse järgmiselt:
$ git push päritolumeister
Nagu näete, saadetakse toimingud edukalt Giti HTTP-serverisse.
Nüüd saab keegi teine kloonida ka test Giti hoidla.
$ giti kloon http: // 192.168.20.160: 8080 / test.git
Navigeerige lehele test / kataloogi.
$ cd test /
Ja leidke muudatused sealt.
Giti HTTP-serveri peatamine:
Selle peatamiseks git-server teenuse käivitage järgmine käsk:
$ docker-compose down
The git-server teenus tuleks lõpetada.
Nii seadistate Dockeri abil Giti HTTP-serveri. Täname selle artikli lugemise eest.