Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

Príklad nasadenia D2000 aplikácie cez docker compose pozostáva zo súborov definujúcich premenné (.env a db.env) heslá (db_admin_password.txt, eda_password.txt), licenčný súbor D2000 (LicenceRun.code) a samotného compose.yaml.

Súbor .env sa využíva na interpoláciu - v ňom definované premenné je možné použiť v compose.yaml. Okrem toho sa premenné z tohto súboru spolu s premennými definovanými v db.env posielajú ako premenné prostredia do inicializačného kontajnera. Ich význam je popísaný v dokumentácii inicializačného kontajnera D2000.

Blok kódu
languagebash
title.env
D2APP=docker_compose                         # Názov vytváranej aplikácie
D2APPDESC=Docker D2000 application           # Popis vytváranej aplikácie
D2ARCHIVES=self                              # Voliteľne, čiarkou oddelený zoznam archívov
#D2REDUNDANT_KERNEL=a:2                      # Voliteľne, názov a priorita redundantného kernela
#D2REDUNDANT_KERNELS=a:d2-knl-a,b:d2-knl-b   # Voliteľne, čiarkou oddelený zoznam redundantných kernelov
D2TAG=v26.00.082                             # Tag/verzia použitých image-ov
#EDA_GROUP=EDA                               # Voliteľne, názov EDA server skupiny
#EDA_USER=docker_compose_eda                 # Voliteľne, názov EDA databázového používateľa
IMAGE_REGISTRY=registry.ipesoft.com          # Adresa registra image-ov
TZ=Europe/Bratislava                         # Predvolené časové pásmo
WDFREQ=60                                    # Frekvencia watchdog-ov v sekundách

...

Šablóna d2-service-depends_on-knl vychádza zo šablóny d2-service a definuje závislosť behu služby na službe zdraví služby 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".

...

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 kontajnera 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.

...

Špeciálnou službou je inicializačný kontajner d2-init, ktorý ako jediný zo služieb nemá povolený automatický reštart, pretože sa má vykonať len raz, pri štarte. Do svojich premenných prostredia vkladá premenné definované v .env súbore aj v db.env. Okrem toho využíva aj heslá definované v secret súboroch.

...

Heslá sú definované v sekcii secrets, kde sú načítavané zo súborov umiestených v rovnakom adresári ako samotný compose.yaml. Medzi preddefinované secrets patrí licenčný súbor D2000 (LicenceRun.code), heslo databázového administrátora (db_admin_password.txt) a voliteľne heslo EDA používateľa (eda_password.txt). Použitie hesla kontajnerom sa definuje v sekcii secrets príslušnej definíce služby. Inicializačný kontajner potrebuje všetky heslá. Jediný proces D2000 používajúci heslo zo secret (eda_password) je EDA server, ktorému sa súbor s heslom odovzdáva ako štartovací parameter.

Blok kódu
languageyml
titleEDA server
# EDA server využíva secret eda_password mapovaný ako súbor v kontajneri /run/secrets/eda_password
d2-eds-self:
  image: ${IMAGE_REGISTRY}/ipesoft/d2/edaserver_odbc:${D2TAG}
  <<: *d2-service-depends_on-knl
  command: [ "/C${D2APP}", "/Sd2-knl", "/F${WDFREQ}", "/EDAG${EDA_GROUP}", "/EDAP3121", "/EDADSN${D2APP}.APPDB", "/EDAUSR${EDA_USER}", "/EDAFPWD/run/secrets/eda_password" ]
  secrets:
    - eda_password
  # ...

...