• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    TOOMIX
    TOOMIX --- ---
    JON: jo, to je token do config wizzarda, je kdyžtak v logu kontejneru.

    Dostanu se k tomu asi až v pondělí
    JON
    JON --- ---
    TOOMIX: kdyztak klidne pis sem / do soukr zpravy - ale u stroje budu az vecer po desate. Zni to jako neco, co by melo byt easy - u me uz mi to bezi a chce to nejakej token, to uz jsem nezkoumal.
    TOOMIX
    TOOMIX --- ---
    Díky všem, nějak to zkusím
    BONEFLUTE
    BONEFLUTE --- ---
    TOOMIX: `sudo systemctl status docker`
    JON
    JON --- ---
    TOOMIX: kdyz na linuxu nainstalujes docker z baliku (proste tim standardnim zpusobem) tak se ti nainstaluje jako automaticky spoustena sluzba
    TOOMIX
    TOOMIX --- ---
    JON: díky

    "hned jak se spustí docket daemon" no ale ten se jistě po rebootu nepustí sám od sebe, to budu muset ještě někde nastavit, aby běžel jako služba, ne?
    JON
    JON --- ---
    TOOMIX: pak to udelej na tom linuxu:
    udelej si adresar youtrack a v nem adresare backups, conf, data, logs a tem nastav prava zapisu (chmod 0777 backups atd...)
    pak tam udelej docker-compose.yml
    docker-compose.yml 
    services:
      youtrack:
        image: jetbrains/youtrack:2025.1.74704
        restart: always
        ports:
          - "8080:8080"
        volumes:
          - ./data:/opt/youtrack/data
          - ./conf:/opt/youtrack/conf
          - ./logs:/opt/youtrack/logs
          - ./backups:/opt/youtrack/backups
    a spust to pres docker-compose up -d

    ten restart: always ti zaridi, ze jak to jednou nastartujes, tak i kdyz se stroj rebootne, tak hned jak se spusti docker daemon, tak to nastartuje i ten youtrack.

    co se tyce tech prav, tak dat tomu ty prava zapisu je potreba PRED tim, nez to nastartujes (a je jednodussi udelat ty adresare predtim nez to nastartujes, jinak ti je to typicky udela samo pod uzivatelem root, coz nechces)

    kdybys si chtel vyhrat s tema pravama lip (nez tam pustit kazdyho), tak bys musel udelat usera 13001 jetbrains, protoze pod tim to uvnitr toho containeru bezi (a ten potrebuje mit pristup k tem adresarum).
    TOOMIX
    TOOMIX --- ---
    SH_PANDA: volume? Pomalu s tim na mě.

    Obecně potřebuju rozjet jenom YouTrack. Podle tohohle návodu to rozjedu na linuxu i na windows - udělám složky, pull na image, docker run a jede to.

    Installation | YouTrack Server Documentation
    https://www.jetbrains.com/help/youtrack/server/youtrack-docker-installation.html#run-youtrack-service

    Pak ale restartuju počítač a nic...

    Zkoušel jsem to rozjet jako službu přes systemd na linuxu, případně přes docker-compose na windows serveru ale nic, všechno se tváří že dobrý, ale po restartu nic nenaběhne, dokud se zas nepřihlásím na plochu a nepozapínám ručně (v CLI nebo zapnu docker desktop).

    Run Docker Container as a Service | YouTrack Server Documentation
    https://www.jetbrains.com/help/youtrack/server/run-docker-container-as-service.html
    SH_PANDA
    SH_PANDA --- ---
    TOOMIX: tak to bych se teda vratil k tomu linuxu. btw co ti brani pouzit volume?
    TOOMIX
    TOOMIX --- ---
    SH_PANDA: jako vesměs mi to je jedno, jestli ten docker pojede na linuxu nebo na windows serveru. Zkoušel jsem oboje, na Ubuntu se mi nějak totálně domrdalo oprávnění na složky namapovaný ke kontejneru, že jsem to zahodil a zkouším to na windows serveru 2022. Ale je to past vedle pasti. Přitom tam chci jenom jeden kontejner.
    SH_PANDA
    SH_PANDA --- ---
    TOOMIX: co nejaky virtual s linuxem? je tam sice nejaky overhead, ale to ti asi nebude az tak vadit, nez nutnost poustet Docker Desktop, ne?
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    TOOMIX: a je mozny, ze bude stacit dat automaticky poustet jenom docker engine a uz to pobezi
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    TOOMIX: bohuzel, s timhle nemam vubec, ale vubec zadnou zkusenost. docker jsem nikdy nepustil jinde, nez na linuxu.
    ale zkusil bzch se podivat n a neco jako docker engine, akorat to pravdepodobne asi nebude kompatabilni s docker desktop a bude se to muset spravovat z prikazove radky
    TOOMIX
    TOOMIX --- ---
    TOOMIX: Nikdo nic? Řeším to několik dní a ani prd.
    TOOMIX
    TOOMIX --- ---
    YouTrack mi zrušil ZIP distribuci a musím přejít na docker. Takže jsem na windows stroj nainstaloval docker desktop, stáhnul image, udělal kontejner jako službu a běží to.

    Run Docker Container as a Service | YouTrack Server Documentation
    https://www.jetbrains.com/help/youtrack/server/run-docker-container-as-service.html

    Ale běží to, jen když pustím Docker Desktop aplikaci a co nechci. Ve windows službách je služba Docker Desktop Service. Když jí nastavím automatické spuštění a restartuju počítač, tak se služba tváří, že je zapnutá, ale k YouTracku se nepřipojím. Když zapnu normálně z plochy Docker Desktop, tak ten odstaví tu službu, pustí kontejner s Youtrackem a všechno šlape. Nevíte, kde by mohl být zádrhel, aby to CELÉ běželo jako windows služba bezobslužně? Díky
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    JON: diky moc.
    JON
    JON --- ---
    MLEKAR_STEIN: takze vlastne v tvym pripade asi takhle:
    
    {{- with .context.nameConstraints.permitted.dnsDomains }}
      dnsDomains:
      {{- toYaml . | nindent 2 }}
    {{- end }}
    
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    JON: dik, tak se zbavim objektu range, coz je vice mene to, co jsem chtel.
    JON
    JON --- ---
    MLEKAR_STEIN:

    toho indentu by melo jit se zbavit pomoci `nindent` a zbytek by mohl jit pres `with`, `toYaml` a lokalni kontext:
    spec:
      selector:
        matchLabels:
          {{- include "app.selectorLabels" . | nindent 6 }}
      template:
        metadata:
          {{- with .Values.podAnnotations }}
          annotations:
            {{- toYaml . | nindent 8 }}
          {{- end }}
          labels:
            {{- include "app.selectorLabels" . | nindent 8 }}
    MLEKAR_STEIN
    MLEKAR_STEIN --- ---
    píšu helm charty a potřebuju názory.

    v podstate porad se v helmu opakuje named list

    nejakeJmeno:
      - polozka
      - druha
    ...

    a je moznost to delat pres pojmenovanou template a include
    akorat to volani mi prijde zase takovy nesikovny v tom, ze tomu musim predat spoustu parametru a je to jak volani win32 api,

    vypada to nejakj takhle
    {{ include "common.printNamedList" ( dict "name" "dnsDomains" "items" .context.nameConstraints.permitted.dnsDomains "indent" "6" "quote" true ) }}

    protoze mu musim predat
    - jmeno listu,
    - jeho obsah,
    - indent a
    - jestli musi polozky dat do uvozovek

    a to uz je trochu neprehledny

    implementace je naopak docela v poho
    {{- define "common.printNamedList" }}
    {{- $items := .items }}
    {{- $name := .name }}
    {{- $indent := ( .indent | int ) }}
    {{- $quote := .quote }}
    {{ printf "%s:" $name | indent $indent }}
    {{- range $val := .items }}
    {{- if ( eq $quote true )  }}
    {{ printf "- \"%s\"" $val | indent $indent }}
    {{- else }}
    {{ printf "- %s" $val | indent $indent }}
    {{- end }}
    {{- end }}
    {{- end }}
    me na tom odrazuje to volani, protoze jsou to ctyri parametry a to je proste uz neprehledny a blbe zapamatovatelny
    a sice usporim par radek, ale ve vysledku vlastne mi prijde ze ten overhead s parametry a dict je docela nesikovnej

    a kdybyste nekdo meli nejaky lepsi napad, tak sem s nim
    Kliknutím sem můžete změnit nastavení reklam