ugrás a tartalomhoz

Docker - ti hogyan csináljátok?

mind1 valami név · Okt. 3. (Szo), 17.14
1. Ha egy 7x24-es service fut benne, hogy oldjátok meg, hogy a futó szoftver naprakész legyen rajta? (Valahol van erről egy bookmarkom, szóval nem linket szeretnék, hanem kíváncsi vagyok, ti hogyan csináljátok)

2. Ha van egy konténer, amiben csak egyetlen fájl változik rendszeresen (példa: dnsmasq, mint adblock, aminek a konfig fájlját és/vagy a /etc/hosts.block fájlját folyamatosan célszerű frissíteni) ti hogyan tartanátok karban? (Meg tudom oldani, szintén csak kiváncsiság)

... Folyt.köv. ...


Ui: bocs, ha már volt ezekről szó... Mikor legutóbb átlapoztam a témákat, nem találtam...
 
1

Szolgáltatás

Poetro · Okt. 3. (Szo), 21.33
Ha egy szolgáltatás folyamatosan fut, akkor biztosan nem egyetlen példányt futtatsz belőle, és előttük van valami terhelés-elosztó. Amikor frissíteni kell, akkor leállítod róla a terhelést, frissíted, teszteled, majd visszarakod rá a terhelést. És ezt minden példánnyal eljátszod.
2

A 7x24-et csak azért hoztam

mind1 valami név · Okt. 3. (Szo), 21.56
A 7x24-et csak azért hoztam példának, mert ugye egy rebuild elég hosszú idő is lehet (egyébként jelenleg egy gépem van e célra, az se túl nagy, szóval ilyesmi mar nem fér bele :) )
3

rebuild

Pepita · Okt. 5. (H), 11.34
Nem feltétlenül szükséges rebuild a frissítéshez, pláne ha csak - a példánál maradva - egy - két kvázi statikus fájl változik. *
Az egy darab gép nem feltétlenül zárja ki az adott szolgáltatáshoz 2 konténer használatát, persze vannak fizikai korlátai.

SZERK.: * Leállítás - frissítés - elindítás azért célszerű sorrend, futó konténerbe nem szoktunk belepiszkálni néhány fájl kedvéért sem.
4

7x24

Pepita · Okt. 5. (H), 11.48
Az 1-es lehetőségre Poetro válaszával egyetértek, a 2-esnél már felmerül bennem, hogy nem annyira szigorúan 7x24, megengedhető a rövid ideig tartó "üzemszünet".
Ha így van, akkor az érintett fájl(oka)t érdemes pl mountolni a host gépre, konténer stop - file update - konténer start.
Feladattól függően akár le se kell állítani a konténert, ha pl a szolgáltatás symlink-kel éri el a fájlt, akkor egy automatizált folyamat bemásolhatja az új verziót, ha ez kész, átírja a symlinket (ez kb 0 idő), majd törli a régi verziót.
5

egy-egy fájl módosítása

mind1 valami név · Okt. 5. (H), 12.27
Na jó, akkor ezt csak leírom, mert úgy tűnik, ez nem annyira nyilvánvaló... :)

Szóval van egy olyan opció, hogy pl. egy squid konfig, amibe bizonyos esetekben bele szokás piszkálni vagy a dnsmasq alatt rendszeresen frissülő hosts file esetében egyszerűen indításkor megadom neki volume-ként az adott fájlt (docker run -d ... -v $PWD/file:/etc/dir/file:ro ...) aztán ha szükséges, host oldalról módosítom, ha muszáj, akkor a konténerben restartolom az azt használó programot (dnsmasq esetében asszem, egy HUP signal, squid esetében egy squid -k reconfigure) és minden megy tovább.

ui: bocs, ha félreértettem azt a mountolós dolgot és ugyanerre gondoltál.
6

Ugyanaz :)

Pepita · Okt. 13. (K), 09.11
"indításkor megadom neki volume-ként az adott fájlt" = "mountolni a host gépre"
Ugyanarra gondoltunk, ami szerintem nem baj.
Ha a restart lehet teljes konténer stop + start, akkor azt könnyebb (szintén a host gépről) automatizálni.