Vidíte historickú verziu tejto stránky. Pozrite si aktuálnu verziu.

Porovnať s aktuálnou verziou Zobraziť históriu stránky

« Predchádzajúce Verzia 2 Ďalej »

Dodávaný docker compose.yaml je rozdelený na tri časti:

  • x-service-templates: Obsahuje šablóny D2000 služieb (kontajnerov/procesov)
  • services: Obsahuje definície samotných služieb.
  • secrets: Obsahuje zoznam súborov s heslami, ktoré sú mapované do kontajnerov.

V súbore sa využíva interpolácia .env súboru.

Šablony služieb

Šablóna d2-service je základná šablóna D2000 procesu, kde je potrebné v sekcii volumes definovať mapovanie vybraných adresárov v kontajneri na perzistentné úložisko. Ďalej, v sekcii environment je potrebné definovať časové pásmo v premennej TZ (zoznam časových pásiem), inak celý kontajner pobeží v časovom pásme UTC. Táto sekcia definuje spoločné premenné prostredia pre kontajnery vychádzajúce z tejto šablóny. Okrem premennej TZ je tu možné podľa potreby doplniť ďalšie premenné.

Šablóna d2-service-depends_on-knl vychádza zo šablóny d2-service a definuje závislosť behu služby na službe d2-knl, ktorá reprezentuje proces D2000 server. Služba vychádzajúca z tejto šablóny teda bude naštartovaná až keď beži D2000 server a hlási sa ako "healty".

Definície služieb

Každý D2000 process je reprezenovaný jednou službou v docker compose. Preddefinované názvoslovie služieb vychádza z názvu D2000 procesu s malými písmenami: d2-<prípona procesu>-<meno procesu>. Službe sa definuje image, ktorý má byť použitý na štart kontajneru a parametre štartovaného procesu (atribút command). Šablóna, z ktorej služba vychádza, je učená syntaxou <<: <*názov šablóny>. Kompletný popis syntaxe je možné nájsť v dokumentácii fragmentov.

Pre procesy, ktoré otvárajú porty, je potrebné ich vymenovať v atribútoch expose a ports. Takýmto procesom je možné definovať aj jednoduchý health check kontrolou otvorenosti daného portu.

Health check pre D2000 server
healthcheck:
  # Overuje pripojenie na port 3119
  test: [ "CMD", "/bin/bash", "-c", "(echo -n> /dev/tcp/127.0.0.1/3119) &> /dev/null" ]
  start_period: 2m     # Prve 2 minúty od štartu kontajnera skúša každých 5 (start_interval) sekúnd, až kým neuspeje - služba je healthy.
  start_interval: 5s
  interval: 1m         # Potom kontroluje každú minútu
  retries: 1           # a už pri prvom zlyhaní je "unhealthy".

Procesom vyžadujúcim špeciálne povolenia capabilities sa tieto zadávajú atribútom cap_add.

Špeciálnou službou je inicializačný kontajner d2-init, ktorý ako jediný zo služieb nemá povolený automatický reštart, pretože a má 


  • Žiadne štítky