[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