• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    KING
    KING --- ---
    REFLEX: jestli chces mit na jednom serveru vsechny tyhle veci tak docker je to posledni s cim bude problem nebo co by tomu neco pridalo, rozhodne bych docker doporucil
    REFLEX
    REFLEX --- ---
    Pouzivate Docker v produkci? Nema to nejaky zbytecny overhead, resp. kdyz bych to chtel dat na VPS kde je 2x.3.5ghz, 4gb ram a 40gb ssd disk a chci tam provozovat kontainer na php, nginx, nodejs a db, elasticsearch a varnish
    URPUTNIK
    URPUTNIK --- ---
    DWICH: v kubernetes muzes mit vlastni configmapu, do ktere das napr obsah toho souboru .. ktery pak mountnes dovnitr do docker image pres kuberneti volume .. (my tak resime pripojovani do ruznych prostredi, protoze aplikace je parametrizovana soubory, nikoli ENV )
    DWICH
    DWICH --- ---
    Ideálně mi jde o ten celek. Jestli mít EVN, tak kde ho mít zapsanej? Nasazuju do kube přes yaml (kubectl create -f deployment.yaml), kterej osekanej vypadá cca takhle:
    apiVersion: apps/v1
    kind: Deployment
    spec:
      template:
        spec:
          containers:
            - name: app
              image: path/to/docker-image
              ports:
                - containerPort: 80
                - containerPort: 443
    
    TRILOBYTE
    TRILOBYTE --- ---
    DWICH: neslo by mit ten konfigurak na pripojenym volume?
    DWICH
    DWICH --- ---
    Ahoj, mám dotaz. Mám jednoduchej docker image, kde je nginx, kterej servíruje jednu statickou HTML stránku. Ten docker image provozuju přes kubernetes. Aby nebyla přístupná, je vyžadována základní HTTP autentikace (htpasswd), což je nastaveno v nginx confu.

    Jak byste řešili, že ta stránka (nginx) má mít zapnutou autentikaci jen v testovacím prostředí a nemá mít zapnutou autentikaci v produkčním? Ten docker bych ideálně chtěl buildnout jen jednou, ať nebuilduju dva rozdílný. Z toho mi vychází, že by někde měl být "přepínač" a podle toho zvolit nginx conf. Jak byste to v praxi udělali? Díky za názory.
    REFLEX
    REFLEX --- ---
    Ahoj,

    1)
    nemate nejaky pouzitelny docker compose na stack

    nuxt (vue) - front
    symfony - api a backoffice (admin)
    mysql
    cele asi pred to dat nginx jako proxy a mozna traefik

    protoze /api a /admin bude zabrane pro php a zbytek by mel obsluhovat nuxt

    2)
    Kde u nas hostujete docker na produkci? Mam na to vzit nejaky VPS?
    SUK
    SUK --- ---
    QUOING: To je, zda se, presne to, co hledam :) Jen jsem se nezvladl spravne zeptat googlu :) Diky!
    SUK
    SUK --- ---
    MARTEN: No, kompiluju strasne malinkej pluginek pro postgres. Coz ale znamena obrovsky zvetseni image kvuli toolchainu na zkompilovani - ted na to koukam - 170 radku C kodu. Externi kompilace ma zase tu nevyhodu v tom, ze je nutne udrzovat identickou verzi, aby se to vubec dokazalo spravne slinkovat.
    QUOING
    QUOING --- ---
    SUK: Muzes pouzit multi-stage builds: https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds

    V prvni fazi vybuildis co potrebujes (treba make; make install) a pak v druhe fazi udelas druhy image, ktery okopiruje binary a lib-ky z toho prvniho image.

    Vyhody jsou maly image s minimem layeru bez nainstalovanych build tools.
    MARTEN
    MARTEN --- ---
    SUK: nejlepe zkompilovat a pak dat do image. takhle i funguje s2i v openshift. moznost je i dat zdrojaky do image, tam zkompilovat a smazat zdrojaky. ale layery jsou pak zbytecne velke plus v hostorii se daji najit i ty zdrojaky. ale je to lehci ze to compiluke stejna verze jako na ktere to pobezi. moznosti je trochu vic, ale je to trochu vic radku. tak zalezi co vse potrebujes a co se compiluje.
    SUK
    SUK --- ---
    Cus, jakym zpusobem resite build imagu/kontejneru, do kterych potrebujete neco maleho zkompilovat?
    REFLEX
    REFLEX --- ---
    MARTEN: ten bash script je dobry napad, to urcite pouziju, furt uvazuju ze jsem na windows, ale on se vlastne pousti v tom containeru :]
    MARTEN
    MARTEN --- ---
    REFLEX: Pro tohle musis menit CMD, ten se provede az po mountnuti volume. Muzes mit pak docker-compose pro dev a pro prod, nebo muzes extendovat, pripadne ridit pres env. Do docker-compose pridej neco takoveho, nebo cokoliv dalsiho:
    front:
      command: bash -c "yarn install && yarn start"
    

    Muzes si udelat i docker-compose.dev.yml, kde bude jen tenhle command a pak to spoustet docker-compose -f docker-compose.yml -f docker-compose.dev.yml up, ale za mne to neni uplne hezke.
    Radsi bych udelal bash script, ktery bude v CMD. V tom souboru budes mit if DEBUG == 1 nebo neco jineho, pak staci zapnout tohle dev (DEBUG == 1) pomoci DEBUG=1 docker-compose up.

    Jinak tenhle image bude docela dost velkej. Prvne by si mel kopirovat pouze package.json a lock soubor. Spustit install a pak nakopirovat zbytek, layery pak budou mensi. Stejne tak ENV a HOST dej na zacatek, run staci jen jeden, delej to jako tri commandy, ale pomoci &&.
    KING
    KING --- ---
    REFLEX: to co chces imho neni v docker compose, ale spis multi stage build Docker image - https://medium.com/capital-one-tech/multi-stage-builds-and-dockerfile-b5866d9e2f84
    REFLEX
    REFLEX --- ---
    Chtel bych pres docker compose

    1) buildil pro dev prostredi
    2) buildil pro produkci

    docker-compose.yml
    
    version: '3'
    
    services:
      front:
        build:
          context: ./front
        working_dir: /app
        command: yarn dev
        ports:
          - "3000:3000"
        volumes:
          -  ./front/:/app
    


    Dockerfile v front/
    
    FROM node:14.0.0-alpine3.11
    
    # Create app directory
    WORKDIR /app
    ADD . /app/
    
    # global install & update
    RUN yarn install
    
    RUN rm yarn.lock
    RUN yarn build
    
    ENV HOST 0.0.0.0
    EXPOSE 3000
    
    # start command
    CMD [ "yarn", "start" ]
    


    S dockerem jsem zacal dnes tak to asi neni uplne ok.

    Na devu potrebuju napojit /front/ na /app/ (tady jsem zjistil ze mountovani volumu je az po buildu takze vlastne nejde ten yarn install) - aby fungoval reloas pri upravach

    Na prod bude pouze COPY

    Jde to vyresit jednim docker-compose nebo mam pro kazde prostredi udelat zvlast?
    SH_PANDA
    SH_PANDA --- ---
    Kdyby nekdo mel zajem, tak hledame k nam nekoho na OpenShift Ops v DevOps ;) Na kratko = projekt na kontrakt i na dlouho (kontrakt nebo HPP). Praha nebo Ostrava. Pracovni doba hodne flexibilni. Jak moc to muze byt remote zalezi na duvere vedeni. Nasho dlouholetyho admina jsem videl asi tak 6x za rok, z toho 3x na team buildingu. Kdyztak posta.
    JON
    JON --- ---
    INDIAN: Mluvim spis o tom testovani - ze to bud budu testovat na docker kontejnerech coz ma svoje problemy, nebo budu muset vymyslet jak to testovat na virtualech, ale tam to neni tak dobre integrovane do toho CI (nebo aspon nevim o tom, ze by slo nejak snadno startovat VM z CI, mozna blbe hledam).
    Kliknutím sem můžete změnit nastavení reklam