• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    ASACHI
    ASACHI --- ---
    MUXX: prestashop / wordpress ... ale rad mam nad vecma kontrolu :)
    MUXX
    MUXX --- ---
    ASACHI: A ty blogy/eshopy mas svuj kod nebo to jsou nejaky opensource veci? K tomu opensource uz vetsinou dockery jsou hotovy a staci vyresit db a konfiguraci.
    ASACHI
    ASACHI --- ---
    Diky vsem, od kontejnerovych reseni jsem asi odrazen ..
    Ted resim GIT, ze bych si u sebe na PC nastavil origin a pak to jen pushnul na VPS a restornul DB ... takze cela instalace serveru jde udelat jednim scriptem prakticky.

    Jen to neni tak fancy jak jsem doufal :)
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    ASACHI: no, moje zkušenost je, že pokud chceš mít kontejnery "hezký" tak to nebude 100 hodin, ale tak desetkrát tolik. jednak potřebuješ mít nějak automatizovaný vytváření kontejnerů, což chvíli trvá, to celý odladit.
    a pak hlavně musíš u kontejnerů odladit deploy/restore, tedy, mám tadydle zálohu/novádata/nějakýpokusy a tu chci tady rozehrát.
    pak vlastně zjistíš, že docker asi nee samotnej, ale raději třeba docker-compose.
    mě osobně přijde že v takhle malým rozsahu se kontejnery moc nevyplatí. spíš si pohrát s automatickou instalací, třeba jak píše MARTEN s ansible a případným s deployem třeba z gitu. celé v nějakém VPS.
    ještě bych zdůraznil to co píše MARTEN, že docker image je statická. tj. nedrží se v ní data. na to musíš připojit nějaký externí volume. a nějak to z něj kopírovat ven.
    a další věc, výkon databází v dockeru je obecně nic moc.
    MARTEN
    MARTEN --- ---
    ASACHI: Moznosti je vic. Hodne zalezi jak chces resit deployment apod. Ta moznost se trema containerama kterou pises je spis o tom, ze nahradit instalaci z package managementu instalaci docker imagu. Coz neni uplne docker way (ale je to tool a pouzit se da nekolika zpusoby). Spravnejsi by bylo mit docker image pro eshop apache, eshop php, eshop mysql, to same pro ty ostatni, takze treba 9 imagu. Coz ale ma vliv na potrebny vykon VPS. Duvod pro tohle je ze kazdou cast deployuje zvlast a kazda je verzovana jinak.
    Pokud nemas primo duvod pouzit docker, tak bych si tam proste nainstalovat to co potrebujes a provozoval jako multihosting. Pokud budes prechazet na jine VPS, to prekopirovani bude uplne stejne, protoze napr. DB data nejsou soucasti containeru a pri prechodu si je stejne musis zazalohovat, prenest a restornout.
    A pro nastaveni a balicky mi takhle prijde lepsi pouzit Ansible, kor jestli nemas zkusenost s dockerem a jak nastavit jednotlive sluzby. DOcker by mel vyhodu, pokud provozujes treba PHP a pro kazdy web by si potreboval jinou verzi, i kdyz i to by pres fpm bylo mozna lehci.
    ASACHI
    ASACHI --- ---
    ADMIX: No, mam navstevnost kolem 800 lidi denne ... coz by pro webhosting nevadilo. Nicmene me tezce serou PHP memory limity / execution limity apod.

    Diky tomu napriklad nejsem schopny udelat upgrade na stavajicim webhostingu = rovnou si rikam, ze to premigruju jinam, kdyz uz se s tim takhle budu srat.

    Kontejnerovy reseni me napadlo prave z toho duvodu, ze verim, ze vybrat VPS nebude uplne ... jednoduchy ... takze kdybych chtel menit VPS v budoucnu, tak mi to v kontejnerech znacne usetri cas.

    Nemam problem v tom utavit 100 hodin casu, abych to mel hezky ... jen proste nevim uplne kde zacit, abych se netocil v kruhu.
    ADMIX
    ADMIX --- ---
    ASACHI: Uf, takhle kdyz to vidim pohromade, tak me napada jen okridlene "docker neni silver bullet na problemy" :)

    Asi bych zacal tim, odpovedet si sam sobe, co si od ty migrace slibujes. Webhostingy existujou, protoze lidi se nechtej starat o tyhle webovy sracky, a malokdo to umi delat dobre, to samy s databazema (managed typu RDS vs. vlastni postgres nekde na lokalu)
    ASACHI
    ASACHI --- ---
    Ahoj,
    mam prosbu ... potreboval bych vedet, co je nejaka best-practice, popripade nasmerovat, jestli jdu uplne blbe.

    Aktualne mam webhosting, kde mam 2 domeny + subdomeny k nim.
    Eshop + blog + web/blog (tj. 3 nezavisle weby s DB) + emaily

    A resim to, ze bych z webhostingu (wedos) presel na svoje vlastni VPS nekde. Jako prvni me logicky napadnul docker. Nicmene vubec netusim, jak to korektne udelat.

    Napriklad u eshopu jsem si rikal, ze by bylo uplne skvely si treba stahnout cely dock jak se souborama, tak s DB ... pustit to u sebe lokalne na PC, udelat upgrade, nahrat zpatky na VPS (cimz bych minimalizoval downtime eshopu).

    Jak se todle resi?
    1 dock s apache + souborama k webum
    1 dock pro DB
    1 dock pro ftp / maily ?

    Zalohy webu delat formou stazeni celyho docku, anebo pres cron co vysype soubory do zipu nekam?

    Diky !
    DWICH
    DWICH --- ---
    Mám jeden dotaz ohledně dockeru, protože se týká spíš CI/CD, tak jsem ho dal do klubu vedle. Abych to necrosspostoval, tak sem jen odkazem: [ Continuous integration, App Deployment ]

    Budu rád za vaše hinty. Vďaka!
    HVJ3R
    HVJ3R --- ---
    Kdybyste nekdo potreboval resit i licence: https://lwn.net/Articles/752982/

    Neni to uplne vesele cteni :)
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    URPUTNIK: základ image můžeš vyrobit pomocí debootstrap, a pak případně ručně doinstalovat v chrootu co potřebuješ a pomocí tar udělat image?
    není to moc hezké, ale automatizovatelné to je.

    Create a base image | Docker Documentation
    https://docs.docker.com/develop/develop-images/baseimages/
    URPUTNIK
    URPUTNIK --- ---
    MARTEN: jj, tomu rozumim .. jen mne zajimalo, jestli pri tomhle zpusobu to vyrobi vic vrstev nebo ne .. ze jde vyrobit ze scratch jsem uz studoval, mame totiz v praci jednu hodne archaickou aplikaci v Ccku, co uz nejde pod aktualnima OS zbuildit, ted to bezi na serverovym Ubuntu 8.04, ke kterymu uz jsem nenasel zadnej image, takze jsem to chtel prave vyrabet z kopie filesystemu ..
    ESTEN
    ESTEN --- ---
    MARTEN: vi, ne vim.
    MARTEN
    MARTEN --- ---
    URPUTNIK: Ano. Ale obecne neni dobre se pripojit a z toho udelat image. Pokud pak budes chtit pouzit novou verzi alpine/debian/.... tak je to vpodstate nereplikovatelna vec. Takze pekne vsechno do Dockerfile a ty muzes retezit. Jeden layer je jeden prikaz, proto casto uvidis
    RUN apt-get update && apt-get install vim && apt-get clean
    apod. Protoze tohle udela jediny layer a ne tri. Ale opatrne s tim kdyz tam budes mit balicek kde te zajima verze. Pokud priste buildnes s novou verzi, tak prijde o layery vseho co na tom bylo postaveno.
    Docela se divim, ze vim je hned v zakladu. Alpine se snazi byt co nejmensi, bezne v tech zakladnich neni ani less ani ping. Jinak si muzes udelat i vlastni uplne ten zakladni image, takze nemusis vychazet z existujiciho, ale je to trochu opruz :)
    URPUTNIK
    URPUTNIK --- ---
    MARTEN: btw, vi v alpine je :)
    URPUTNIK
    URPUTNIK --- ---
    MARTEN: aha, to s tim ulozenim po vrstvach je docela dulezita informace, diky. Vlastne to urcuje hierarchii, v jaky by mel clovek ten vysledny image skladat (cim nizsi vrstva, tim obecnejsi a vic reusovana vec)

    co vrstva to jeden prikaz v docker file? a kdyz by ten image vznikl tak, ze pustim nejaky base image, pripojim se na nej pres ssh a nakonfiguruju/nainstaluju, pak z toho udelam image, bude to jedna vrstva?
    MVEK
    MVEK --- ---
    ADM: Ano 192.168.99.1 má být jako adresa hosta, když na hostu běží mock. Volá se URL něco jako http://192.168.99.1:10600/v1/secure/nnnnnn. Ale já si na tu adresu hosta ani nepingnu, pokud fyzický počítač (host) není ve firemní síti, ale je offline nebo třeba doma.

    Ale díky kolegům jsem objevil workaround, i když příčinu problému stále neznáme.

    Stačí do konfigurace pro službu kterou mockuju dát jako endpoint namísto 192.168.99.1 IP adresu, kterou zjistím tak, že se v minikube VM dotážu na ping na název fyzického (hosta) počítače, když jsem v síti, a překladem zjistím IP. Tahle IP asi nebude stálá, ale to tolik práce zjistit jednou denně není.


    Takže pokud mi něco neuniká, přijde mi to na problém v nastavení sítí VBoxu nebo v doménové politice či jiných omezeních našich fyzických pracovních počítačů (protože nechápu, proč by adresa hosta jako 192.168.99.1 byla vidět jen ve firemní síti) a asi nesouvisí s Dockerem jako takovým.


    ADM
    ADM --- ---
    MVEK: jasne, takze ta 192.168.99.0/24 bude adresa virtualboxu host only networking, 192.168.99.100 je adresa toho virtualu s minikube, a ta 192.168.99.1 se tam asi pridava jako adresa hosta. takze kdyz si tu lokalni sluzbu nastartujes na 192.168.99.1, tak ji musi sluzby z toho virtualboxu videt. kdyz to teda funguje, jaky jsou tam zdrojovy adresy requestu na http://192.168.99.1:10600/ ?
    MVEK
    MVEK --- ---
    Samozřejmě nefunguje ani ping z toho virtuálu na tu adresu na hostu, když je host offline nebo třeba přes VPN.
    Koukal jsem, že ten adaptér má nastaveno an hostu:

    Ethernet adapter VirtualBox Host-Only Network #2:

    Connection-specific DNS Suffix . :
    IPv4 Address. . . . . . . . . . . : 192.168.99.1
    Subnet Mask . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . :
    MVEK
    MVEK --- ---
    ADM: Ano, už sám vidím svou špatnou úvahu, že nemůžu si hrát s wget z hostu a myslet si, že stejně je na tom aplikace v kontejneru ve VM ve VBoxu. Ale ano nepopírám, že mé síťové znalosti jsou taky chabé, ve škole to mnou před lety bohužel z větší části jen proteklo.

    Podíval jsem se víc na situaci a:
    VM se vytváří inicializačními příkazy a nástroji, takže při vytváření jsem si svou nevědomostí bordel neudělal.
    1) VBox má dva adaptéry, jeden NAT a druhý VirtualBox Host-Only Ethernet Adapter #2 typu Paravirtualized Network (virtio-net).
    2) Služba běží v minikube ve VBoxu. Poslouchá sama na http://192.168.99.100:30050/, na kterém jí v mém testovacím scénáři posílám SOAP request z hostu. A pak sama (i podle logů) kontaktuje přes POST ten mock na http://192.168.99.1:10600/.
    3) Mock poslouchá na http://192.168.99.1:10600/ a běží na hostu (je napsaný v Javě, volá na poslouchání JdkHttpServerFactory.createHttpServer(new URI("http://192.168.99.1:10600/"), myApplication, true); )

    V bodě 2 služba vytimeoutuje, když je host offline (odpojený kabel, vypnutá wifi...), nebo na VPN nebo např. za mým domácím routerem. Ale funguje v pracovní síti.


    Jak bych mohl ověřit, jak doopravdy ta služba mock kontaktuje, nebo co bych mohl zkusit dál hledat?
    Kliknutím sem můžete změnit nastavení reklam