( kallaics | 2018. 07. 26., cs – 08:39 )

Őszintén szólva neked nem segítség kell ebben a fázisban, hanem el kell kezdened olvasni a témában. Például hogyan működik a docker, az automata deployment és CI/CD úgy általában. Ehhez vannak jó könyvek és videó anyagok. Utána lehet segítséget kérni és utána fogod látni, hogy mennyivel jobb úgy,hogy érted az alapokat és ha valami elromlik később érted mit csináltál és meg tudod javítani. Amíg az alapok nincsenek meg addig mindenféle segítség hasztalan.

Ezt a folyamatot, meg kell tervezni le kell dokumentálni szépen, mert ez már nem egy pár soros bash script és ha valami nem úgy megy,ahogy kitaláltad, akkor 1 év múlva már nem fogod tudni mit miért csináltál.

Például esetedben ez is mutatja,hogy nincs elég tapasztalatod még a Docker-rel sem.
"Az egyik járható út lehet, hogy a Gitlabból ssh-val belépve egy szkript letölti az új Docker képfájlt.
A másik (általam jobban preferált), hogy a szerverek minden nap cronból lekérdeznék, hogy van-e új image és ha igen, akkor egy szkript leállítja a futó konténereket, letölti az új képfájlt, elindítja a konténereket, majd státuszt vizsgál: ha minden rendben működik, akkor az előző verziójú image-t eldobja."

Mondok hozzá neked egy lehetséges megoldást:
Image build-elés után az image felkerül a docker hub-ra privát repoba (asszem fizetős a privát repó) és onnan tudod frissíteni a rendszert. Alternatív megoldásként építhetsz saját docker registry-t,ahová az image-ket tárolod. A lényeg,hogy egy registry-ben kell tárolni a build-elt docker image-ket.

A fentihez hasonló lehetőségek vizsgálatát minden egyes tervezett lépésnél meg kell ejtened. Ehhez tanulmányoznod kell a GitLab milyen lehetőségeket ad a Te elvárásaidhoz. Például van-e benne docker registry opció vagy külső tároló kell majd.

Én az alábbi lépéseket csinálnám nagy vonalakban:
- Hook ha a kódban változás van (definiálni kell mi az a változás, amire indul a build)
- Kellene kód ellenőrzés és tesztelés,hogy kód rendben van-e (kulcsszavad: validation, smoke test)
- Build docker image
- Betárolni registry-be.
(- image tesztelése docker alatt teszt konfiggal mielőtt élesbe megy)
- Docker konténer alatti image cseréje (ennek is több módja van igénytől függően. Zero downtime kell-e stb.)

Utána jöhet egy step by step guide, ami alapján már össze tudod rakni Gitlab alatt az egészet.
Nem egész 1 perc guglizással találtam: https://hackernoon.com/setting-up-ci-cd-on-gitlab-step-by-step-guide-pa…

Mint látod ez nem egy 2 perces történet és sok ismeret és tapasztalat kell ahhoz, hogy jól megtervezz és átláss egy ilyen rendszert!

A fentieket nem azért írtam, hogy elvegyem a kedved, hanem,hogy megértsd, hogy ehhez meg kell tanulnod az alapokat, hogy egy jól összerakott rendszert le tudj tenni az asztalra.