• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    MARTEN
    MARTEN --- ---
    Tak pro zajimavost. V pripade kubernetes staci nastaveni egress. V pripade docker/docker-compose je reseni mit container s proxy a vsem kterym chci zakazat pristupovat ven, tak nastavit `network_mode: service:` a tam uz vse resit jako beznou proxy.
    HVJ3R
    HVJ3R --- ---
    DOKIS: ad 2 je v zasade sys root trusted a java root trusted. Pokud teda neresime browsery, ale i tem se to da podstrcit.
    GIOMIKY
    GIOMIKY --- ---
    MARTEN: Na testy bych zkusil tinyproxy.
    DOKIS
    DOKIS --- ---
    MARTEN: Pokud chces logovani a filtrovani na urovni URL, ne IP adres, a zaroven to ma byt nejen HTTP, ale i HTTPS, tak mas problem. Protoze chces delat neco, cemu ma HTTPS z principu branit - jde vlastne o variantu man-in-the-middle (MITM) utoku. V zasade mas asi dve moznosti, obe spatne:
    1) v kazdem kontejneru pro kazdy produkt nastavit proxy, takze ten klient na tom MITM bude vedome spolupracovat; samozrejme nastaveni proxy neni nejake jednotne a env. promennou sice dost veci bere, ale zdaleka ne vsechny.
    2) skutecne udelat MITM na spojeni nespolupracujich aplikaci. Tam ale potrebujes tem aplikacim vnutit svuj root certifikat jako duveryhodny. Opet plati, ze existuje bezny zpusob, jak to udelat, ale zdaleka ne vsechno ho pouziva.
    MARTEN
    MARTEN --- ---
    MUXX: Budu muset zkusit. Jen ta http_proxy variable neni podporovana kazdym toolem/jazykem a je pro nektere hrozny opruz najit co specialne potrebuji. Ale asi to zkusim
    MUXX
    MUXX --- ---
    MARTEN: Rekl bych, ze squid bude nejlepsi. Proxy se resi stejne jako na linuxu pres http_proxy env variable. Zalezi kde to provozujes, da se to nastavit i na host https://docs.docker.com/network/proxy/
    MARTEN
    MARTEN --- ---
    Neresim inbound. Nic s balancingem, routingem apod.
    Potrebuju vyresit outbound z containeru. Defaultne zakazat containerum jakoukoliv komunikaci ven a pouze jim povolovat whitelistem kam muzou.
    Tedy nic spolecneho s haproxy, nginxem, traefik atd.
    Squid rozchodim (pokud nezna nekdo ted lepsi reseni), ale nevim jak nastavit containery a automaticky je brat pres proxy a vlastne i at drzi container informaci o tom, ktera pravidla pro nej plati. At se zmenou ip, apod., nemusim resit znovu whitelistovani.
    JON
    JON --- ---
    MARTEN: a nechces spis neco, co je opravdova service-mesh?
    MUXX
    MUXX --- ---
    MARTEN: kdyz je vsude SSL, tak v tom logu uvidis maximalne IP adresy ne? to jeste pak bude dost prace zjistit co vlastne ten traffic znamena ne?
    RUDOLF
    RUDOLF --- ---
    MARTEN: traefic se dá řídit podle labels co máš u každého kontejneru

    Traefik Docker Documentation - Traefik
    https://doc.traefik.io/traefik/providers/docker/
    RAINBOF
    RAINBOF --- ---
    Haproxy se nelibi ?
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    MARTEN:
    jestli je to jen http tak by mohlo fungovat ngx_http_proxy_connect_module
    ale zkusenost nemam

    a na odchozi trafik asi muze byt squid funkcni
    MARTEN
    MARTEN --- ---
    MLEKAR_STEIN: Nechci reverse proxy, ale traffic z containeru pres proxy, abych mohl whitelistnout adresy kam smi bezici service.
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    MARTEN:
    squid je asi trochu na jine pouziti.

    urcite bych pouzil nginx, da se misto dns pouzit path a pak mas pro kazdou path vlastni proxy_pass.
    MARTEN
    MARTEN --- ---
    Potreeboval bych vsechny sve docker containery dat za proxy. Jaky proxy server by ste pouzili? Znam akorat tak squid, ale prijde mi to trochu kanon na vrabce. Chci jen at to ma log, nejake UI at zjistim co kam leze. Ani nepotrebuju snad uzivatele.
    A jde nejak udelat, aby kazdy container jel pres tuto proxy, abych to nemusel pro kazdy tool nastavovat zvlast a jeste uvnitr?
    BONEFLUTE
    BONEFLUTE --- ---
    Ahoj.
    Zkouším použít podman-compose pod neroot uživatelem.
    Mám jednoduchý webový php server + mysql. Tedy dvě služby. Nic složitého. Běží to.
    Problém je v tom, že já bych rád, aby ta databáze měla IP adresu. Abych si ji mohl vypsat pomocí podman inspect a abych se pomocí té IP adresy do té databáze mohl přihlásit pomocí nástroje (dbeaver například).

    Doufám, že to bude něco jednoduchého a jsem jen slepej. Nedaří se mi nic najít.

    Předem díky.
    RAINBOF
    RAINBOF --- ---
    JON: zarim jsem to ohnul takto:

    docker compose build -profile1
    Docker compose build -profile2

    Kde nejdriv postavim set tech "dole" a pak teprv ty vys. Je to oprc ale funguje to.
    SH_PANDA
    SH_PANDA --- ---
    RAINBOF: ok, na multi-stage buildy jsem nepomyslel. To nam resi package dependency tool, ktery pusti buildy podle deklarovanych dependencies.
    SAMGARR
    SAMGARR --- ---
    IMO to docker-compose neresi schvalne a nechavaj to na CI.
    JON
    JON --- ---
    RAINBOF: no nevim, asi bych to resil takhle (coz je dost kpt obvious odpoved, zejo):
    $ cat build.sh
    #!/bin/bash
    set -e
    docker-compose build image_1
    docker-compose build image_2
    nehledal bych v tom moc zakernosti, ale je pravda ze me to nikdy netrapilo - kdyz je potreba tech imagu buildovat fakt hodne, tak to dela pipeline a ja jen pulluju, pripadne si lokalne vybuildim ten jeden dva, ktere zrovna menim. Tak je mozny, ze mi unika nejaky use-case, kde by se to fakt hodilo.
    Kliknutím sem můžete změnit nastavení reklam