[Devel] Docker - gitlab.org

Gáspár Ákos gasparakos at hnp.hu
Tue Oct 2 11:45:39 CEST 2018


Sziasztok!

Docker kezdéshez az első két részt ajánlom innen: 
https://docs.docker.com/get-started/ . A többi később lehet érdekes.

Telepítésnél amire érdemes figyelni, hogy a /var/lib/docker-ben tárolja 
az image-eket és egyéb dolgokat. Hamar el tud fogyni a hely a partíción. 
Én mindig kiteszem egy LVM volumra 10GB-val kezdve. Szerintem ext4 
overlay2-vel a legjobb, de rengeteg kombináció van. Debian alapból az 
aufs-t akarja használni, én már nem is engedem hogy feltelepítse a 
csomagot. Elég friss kernelnél (3.10+) alapból az overlay2-t használja. 
Itt olvashattok róla: 
https://docs.docker.com/storage/storagedriver/overlayfs-driver/#configure-docker-with-the-overlay-or-overlay2-storage-driver
Ha nullázod a /var/lib/dockert akkor minden kezdődhet előről.

A docker-compose (https://docs.docker.com/compose/) már 
infrastruktúrában gondolkozik. A különálló konténereket hálózatba 
rendezi és egymás számára elérhetővé teszi. És mindezt egy ascii 
szöveges konfig állományon keresztül. Verziókezelhető, könnyen 
megosztható egymással így ugyanabban a környezetben fut minden. Konfig 
formátumból is már több verzió létezik v1, v2, v3, egyre bonyolultabb 
struktúrával de kifinomultabb lehetőségekkel.

A Lando (https://github.com/lando/lando) a docker image kezelésére és 
futtató környezetére és a docker-compose infrastruktúrájára épül és 
kiegészíti azt egy pár fejlesztésnél jól használható eszközzel pl. 
minden konténert elérsz ssh-val, meg nem kell ip címekkel bajlódni hanem 
proxy-n keresztül név szerint éred el a konténereket. Különböző 
tool-okat lehet definiálni benne pl. composer, vi, vim. Illetve a 
recipe-in keresztül előre elkészített környezeteket ad pl. Drupal, 
Laravel stb. amit tovább alakíthatsz az igényeidhez. Az Autumn Coding 
alatt én a LAMP-ot használtam alapul.

A telepítő szkript kétféleképpen futtatható. Buildelés közben (RUN) vagy 
az image futtatásakor. Mivel adatbázisok is jönnek létre és SQL 
parancsok furnak ezért szerintem érdemes az utóbbi megoldást választani 
és valamilyen logikával csak első indításkor futtatni. Van ilyen 
megoldásra több image-ben is, ha jól emlékszem a postgres is első 
futtatáskol létrehozza az alap adatbázisait, de szerintem a Drupal is 
azzal kezdi. Amikor futtatod az image-t akkor kvázi egy shell script fut 
le a konténeren belül és az húzza fel a környezetet. Ezeket általában 
meg lehet nézni a repok-ban, meg az image-ből is kimásolható. Ennek majd 
utána járunk.

A docker image-t nem érdemes updatelni mert elveszíted vele az 
általánosságát. Minden amire szükség van az legyen az image-ben, ami 
futtatás során keletkezik volume-ban, így lehet könnyen cserélni a 
környezetet és esetleg sokszorozni is.

A image-hez a Dockerfile-ban az ADD parancsal adsz hozzá állományokat, 
akár teljes könyvtárstruktúrát is. A projekt gyökerében is elhelyezheted 
a Dockerfile-t és akkor '.'  hivatkozással mindent beteszel az image-be. 
A jelenlegi openbiomaps git repo a gyökérből kiindulva tartalmazza az 
alkalmazást. Ha kiveszük az uploads könyvtárból a fájlokat még mindig 
~700MB. Lehet ezen tovább faragni? Úgy látom a lib/js is egy szép csomag 
~200MB. Ja meg maga a .git. Miki, nagy munka lenne az alkalmazást 
betenni egy almappába, pl. src és csak azt elhelyezni a docker image-ben?

Üdv:
Ákos

2018-10-02 09:19 keltezéssel, Bán Miklós írta:
> Szia Ákos,
> 
> köszi, ez jó hír!
> 
> Nekiálltam a dockerrel való ismerkedésnek! :) nagy falat, de azt hiszem
> meg fog térülni a tanulás....
> 
> 
> Esetleg, nem írnál kérlek egy pár mondatos összefoglalót a listára, hogy
> mi ez a docker-landó és miért jó ebben futtatni openbiomaps szervert?
> 
> A gitlab-ot már láttam amikor alternatívákat néztem a github mellé.
> 
> Itt egy szép leírás a github-gitlab különbségekről:
> https://usersnap.com/blog/gitlab-github/
> 
> egyébként nem használtam eddig...
> 
> 
> Még mindig készítem az openbiomaps első telepítő szkriptet és az
> update szkripteket. Pár dolog azért nem triviális... különösen annak
> fényében ha a dockeres környezetre is gondolok.
> 
> Van értelme a dockerben felhúzott rendszert bármilyen külső updattel
> kombinálni? Úgy értem, hogy debian repó, vagy git.
> 
> üdv, Miki
> 
> 
> 
> On Mon, 01 Oct 2018 14:42:42 +0000
> Gáspár Ákos <gasparakos at hnp.hu> wrote:
> 
>>
>> Sziasztok!
>>
>> A hétvégén foglalkoztam egy kicsit a docker image-ekkel. Ezek még
>> csak egy nagy kirakó első elemei, de már felvetődött egy pár kérdés.
>> Először ami sikerült:
>>
>> A hub.docker.com-on az én nevem alatt (egyenlőre) megjelent egy
>> félig előkészített mapserver image, ez itt találhatö:
>> https://hub.docker.com/r/gaspara/obm-mapserver/ . A Lando-ban is
>> sikerült ezt felhasználni, így annak a config-ja is egyszerűsödött.
>> Ehhez felhasználtam egy gitlab.org-os projectet amit itt találtok:
>> https://gitlab.com/openbiomaps/docker/obm-mapserver . Ennek a
>> configurálása viszonylag egyszerú volt. A CI/CD rendszerének
>> köszönhetően az itt commit-olt változtatások automatikusan néhány
>> percen belül érvényesülhetnek is a hub.docker.com -on megtalálható
>> image-ben.
>>
>> Én is most ismerkedem a CI/CD rendszerekkel és eddig hasznosnak
>> tűnik, a buildelés, tesztelés egy részét automatizálni lehetne. Aki
>> szeretne erről olvasgatni: https://docs.gitlab.com/ee/ci/ . Ahogy
>> látom az eddigi fejlesztői infrastruktúra a fő kód kivételével a
>> github-on van. Mi a véleményetek a gitlab.org-ról? Ismeritek?
>>
>> Ákos
>>
>> _______________________________________________
>> Devel mailing list
>> Devel at lists.openbiomaps.org
>> http://lists.openbiomaps.org/cgi-bin/mailman/listinfo/devel
> 
> 
> 


More information about the Devel mailing list