• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    REFLEX
    REFLEX --- ---
    Mam dalsi dotaz :D aspon to tu zije

    Jak resite 0 downtime releasy?

    Mam docker-compose - container na front end (nodejs) a back (php) a cele to "routuje" nginx, ktery expouje 80 a 443 port.

    Vite o nejakem clanku/tutorialu? :)

    Mozna to nepoustet pres docker-compose?
    HVJ3R
    HVJ3R --- ---
    REFLEX: By default nejsou (host ip muze bejt verejna a dockery muzou brat adresy z privatniho rozsahu, exponujic jen explicitne recene porty). Samozrejme kolize muze nastavat na tom stroji, tj. kdyz dockerum das privatni rozsah, tak provoz ku 192.168.0.1 pujde z toho stroje na bezici docker s touto adresou, ne na jiny stroj s touhle adresou.
    REFLEX
    REFLEX --- ---
    Ahoj, mam dotaz na docker-compose, mam server, ktery je v nejake vnitrni siti, na servery jede docker-compose a 4 kontejnery, ted se stalo ze ty kontejnery sezrali IP 192.168.0.1 (nebo neco podobneho) co zaclo kolidovat s tou vnitrni siti.

    Je tam asi default docker co jede network v bridge modu.

    Jestli to teda chapu tak v ramci vnitrni site jsou kontejnery dostupne z ostatnich pocitacu? :)

    Realne nemam moznost to vyzkouset, zkousel jsem procitat dokumentaci a jeste budu :)
    FONTAN
    FONTAN --- ---
    Ahoj

    nepotuluje se tu zkuseny devopsak se zamerenim na azure & aks ekosystem na par (placenych) konzultaci?
    RAGNAROK
    RAGNAROK --- ---
    MARTEN:
    to jsem zkousel pokud neni v image/vytvorenej user tak kdyz das jenom parameter user a spustis v conteineru interaktivni shell tak mi to napise neco jako i don't know user name a pak kdyz das vytvorit file tak ho vytvori jako root. (docker 18.09.5)
    MARTEN
    MARTEN --- ---
    RAGNAROK: Docker by soubory mel vytvaret pod uid uzivatele, ktery je uvnitr containeru. Container by nemel bezet jako root. Zkus jestli by ti nestacilo spustit container s parametrem --user 1000:1000. Mozna by ti to mohlo stacit, pokud chapu dobre tvuj problem.
    Omezeni na host filessytem je tezsi. Docker daemon defaultne snad vsude bezi jako root, takze kdo se bude snazit, dostane se na jakykoliv soubor v systemu jen s pouzitim hello-world containeru. Ale jestli to neni sdileny server, asi te to nemusi trapit.
    RAGNAROK
    RAGNAROK --- ---
    MARTEN:
    Potrebuju mit nastroj kterej mi pujde vsude a nechi resit porad naky zavislosti treba (ruzny tooly treba lsp) mezi ruznejma distribucema a verzema.
    Potrebuju spoustet emacs pod ruznejma userama s ruzne omezenym pristupem k hostovymu filesystemu, ale aby byl zachovana zvolenych casti fs moznast rw, owner/group. Dokcer ma tendenci vytvaret soubory na hostovym fs jako root. Je to ciste pro moji potrebu, nemam ambic, ze by to pouzival nekdo mimo me.

    Mozna je treba lepsi alternativa snap akorat o tom nic moc nevim a znalost snapu nevyuziju/nemam cas resit.
    SH_PANDA
    SH_PANDA --- ---
    Dockerizovat nastroje je skvele reseni jak je sprovoznit i na windows/macos ale i linuxu. Delali jsme to na jednem projektu (cca 6let zpatky), kde jsme tak balili nejake tooly pro windows vyvojare
    MARTEN
    MARTEN --- ---
    RAGNAROK: Proc to potrebujes? Tohle je trochu zvlastni a nezda se mi, ze zrovna build je spravna faze. To by melo byt spis pri run, jestli chces aktualniho uzivatele. V buildu to vytvori jednoho uzivatele, ale spustit to pak muze nekdo jiny.
    Dal bych do run, v containeru mel bash script, ktery prida uzivatele predaneho v run a bude pro aktualniho uzivatele v povolenych sudo commands. Ale spis proc to potrebujes? Mozna se najde lepsi reseni
    INDIAN
    INDIAN --- ---
    RAGNAROK: v dockerfile si vytvoris jednoduse
    ARG MY_USER
    ARG MY_UID
    RUN useradd $MY_UID $MY_USER

    a v behem buildu mu je predas:
    $ docker build --build-arg MY_UID=1234 --build-arg MY_USER=me . 
    RAGNAROK
    RAGNAROK --- ---
    Vyrabim dockerized emacs.
    Zkousim v Dockerfile:
    RUN useradd UID USER

    Potreboval bych tomu useradd nacpat jako parametry $(id -u) a $(id -g). Napadlo me jen v bashi skript kterej ty parametry do toho Dockerfile naprasi.

    Zkousel jsem ten useradd v entrypointu ale to pak nemuzu pustit docker run s parameterem -u $UID protoze nemam pak neni pristup k passwd.
    MARTEN
    MARTEN --- ---
    REFLEX: Jestli bylo chciple vsechno, hledal bych na serveru. Co uptime? Kouknul bych na posledni instalovane balicky, jestli tam nebyl docker/kernel/.... pripadne bych kouknul i do logu syslog/messages/apod.
    Necekam ze kazdy container se exitnul ve stejnou chvili a bylo by to "chybou" toho co v tom bezi.
    RAGNAROK
    RAGNAROK --- ---
    REFLEX:
    pokud ti containery nelogujou do stderr/stdout tak v logs nic neuvidis.
    REFLEX
    REFLEX --- ---
    Ahoj, tak mam dalsi dotaz :D. Na serveru mi bezi docker-compose a dnes rano to bylo chciple = containery co bezeli byly ve stavu exited, nemel jsem zaple restart: always, ale to neresi to ze ted nemam jak zjistit proc spadli. Procital jsem docker-compose logs, ale tam nic neni

    Jak ziskat tyto logy, aby byly aspon v logs? Nebo co pouzit jako monitorovaci nastroj? Doufal jsem ze https://www.portainer.io/ to umi, ale zatim ne :)
    MARTEN
    MARTEN --- ---
    REFLEX: Nabidnu jeste za mne lepsi reseni. Co takhle to schedulovani resit uz na hostu? Pokud pouzivas kubernetes (da se pouzit i s docker-compose), tak je tam primo command schelule (cron line). Pak pouzijes php image a jen zmenis command. Pokud mas jen docker compose a uvnitr cisty docker, tak koukni na https://strm.sh/post/cron-tasks-inside-docker/ . Predpokladam ze container je udelan jako dind. Pokud by si bindoval nektere zarizeni ze serveru, mohlo by to byt tezsi, ale to nejspis nedelas. Nevim o tom, ze by primo vanila docker mel moznost schedulovani.
    ADM
    ADM --- ---
    REFLEX: stejny kontejner jsme delali tak jak jsem psal, vyhnul bych se udrzovani 2 imagi se stejnym php kodem
    REFLEX
    REFLEX --- ---
    MARTEN: cron vola klasicky symfony command "php bin/console app:..."
    MARTEN
    MARTEN --- ---
    ADM: Neni nejlepsi. Je spatna z pohledu dockeru, kde by mela bezet maximalne jedna sluzba v containeru. Ale pokud nepotrebuje vystup logu a healthcheck na cron, da se to pouzit. Oddeleni ma jak jsem psal minimalne vyhovu v tom ze se to da skalovat.
    Jina vec je, ze docker image byl mel byt asi dost jiny. Nepotrebuju v nem php-fpm. Nemusim potrebovat nektere knihovny a teoreticky i php kod muze pro cron byt uplne jiny nez pro web aplikaci (assets, presentery,...). Plus cron muze spoustet i jine procesy nez php (java, python,...). Ale to bez znalosti projektu nelze odhadnout.
    Ale pokud, tak bych to komplet oddelil, klidne mel base image ktery ma pouze php a knihovny co budu potrebovat a pak jeden s php-cli a druhy s php-fpm a daval do nich ty soubory, ktere potrebuju.

    REFLEX: Radsi dva containery. skalovani, omezeni resources (cron nebude potrebovat tolik co navstevovany web), nejspise jiny network,....
    Zalezi co ten cron ma taky volat. Nejaky php script z aplikacniho kodu? Pro jednoduchost muzes udelat ty dva entrypointy jak pise ADM. Pokud cron bude delat vic veci a potrebovat i jine balicky, vlastni image.
    ADM
    ADM --- ---
    MARTEN: to je spatna moznost. rozdilny entrypoint znamena jeden radek navic v tom docker-compose u container s cronem, to php pouzije defaultni z image
    Kliknutím sem můžete změnit nastavení reklam