Her er det listet flere eksempler på hvordan en kan bruke docker compose
for lokal utvikling – da med tanke på at en
ønsker å kjøre opp applikasjonene i en IDE for å kunne debugge. Disse eksemplene dekker de fleste bruksområdene – skulle de ikke det,
ta kontakt med ansvarlig.
Rekkefølgen som en kjører opp applikasjonene er veldig viktig, og må tas hensyn til. Avhengighetene til hver applikasjon er listet under.
<ingen avhengigheter> <---- postgres, oracle og vtp
postgres og vtp <---- fpabakus
oracle og fpabakus <---- fpsak
fpsak <---- fpformidlding/fpoppdrag/fptilbake/fpfrontend/fprisk/fpabonnent
Eksemplene nedenfor kjører opp den MINSTE verdikjeden for hver. Dette gjøres fordi det er godt kjent at en del av PCene har dårlig specs og ikke tåler at hele verdikjeden blir kjørt opp. Den minste verdikjeden betyr at Docker setter bare opp de nødvendige applikasjonene som trengs for å kunne kjøre angitt applikasjon.
- Minste verdikjede for FPSAK: postgres, oracle, fpabakus og vtp.
- IKKE minste verdikjede for FPSAK: postgres, oracle, fpabakus, vtp, fpformidling, fpfrontend, ...
Hvis en ønsker å kjøre opp hele verdikjeden med ingen applikasjoner utenfor i IDE kan resources/pipeline/compose.yml
kjøres.
Her ønsker vi å kjøre opp fpsak i IDE, mens resten av dens avhengigheter kjøres opp av docker-compose. Siden lokal utvikling pågår oftere i fpsak er det laget et eget script for å få opp alt på en kjøring. Følg følgende oppskrift får å få opp avhengighetene:
-
Gå til mappen lokal-utvikling/:
cd lokal-utvikling
. -
Hvis du ønsker å bruke siste versjon av avhengighetene hopp over dette steget og gå direkte til steg 3). Ønsker du å bruke en annen versjon enn den siste for noen av avhengighetene kjører du denne kommandoen:
./update-versions.sh <APPLIKASJONSNAVN> <VERSION>
-
Kjør scriptet
lokal-utvikling-fpsak.sh
i som ligger i mappen "lokal-utvikling/".- For Mac skriv følgende i terminalen:
./lokal-utvikling-fpsak.sh
- For Windows skriv følgende i terminalen:
sh lokal-utvikling-fpsak.sh
- For Mac skriv følgende i terminalen:
-
Kjør deretter opp FPSAK i ønsket IDE.
Med "applikasjoner som ikke er løvnoder" menes det applikasjoner som må startes opp før de andre applikasjonen kan starte. Eksempler på dette er POSTGRES, ORACLE, VTP og FPABAKUS. POSTGRES, ORACLE og VTP har ingen avhengigheter og kan bare kjøre opp først, mens FPABAKUS har avhengigheter til VTP og POSTGRES. I dette eksempelet skal vi ta for oss FPABAKUS:
-
Gå til mappen lokal-utvikling/:
cd lokal-utvikling
. -
Kjør følgende kommando for å generere
docker-compose-lokal/
../setup-lokal-utvikling.sh fpabakus
-
Kjør
cd docker-compose-lokal
for å komme inn i mappen som nettopp ble laget av scriptet over.NB: Nå er det viktig å kjøre applikasjonene opp i riktig rekkefølge, både lokalt og i Docker.
- fpabakus har avhengighet til postgres og vtp.
- fpsak er avhengig av fpabakus, vtp og oracle.
Her må da avhengighetene til FPABAKUS først kjøres opp før FPABAKUS kan kjøres, og FPABAKUS må kjøres opp før FPSAK kan kjøres opp. Rekkefølgen blir da:
- VTP + POSTGRES (docker-compose) --> FPABAKUS (IDE) --> ORACLE + FPSAK (docker-compose)
-
Sett versjon som skal kjøres opp med å kjøre scriptet "update-versions.sh":
- For Mac skriv følgende i terminalen:
./update-versions.sh
- For Windows skriv følgende i terminalen:
sh update-versions.sh
Ønskes en annen versjon enn siste versjon, gjør som i eksempel 1 og 2 (steg 2).
- For Mac skriv følgende i terminalen:
-
Kjør først opp VTP + POSTGRES gjennom docker-compose:
docker compose up --quiet-pull --detach postgres vtp
-
Kjør deretter opp FPABAKUS i IDE.
-
Kjøre deretter opp resten av verdikjeden.
docker compose up --quiet-pull --detach --scale fpabakus=0
Her ønsker vi å kjøre både FPSAK og FPFORMIDLING opp lokalt i IDE, mens resten av avhengighetene skal Docker Compose ta seg av. Her lages det ikke et script: Dette gjøres på den manuelle måten ettersom bruksområdet ikke er så stort.
-
Gå til mappen lokal-utvikling/:
cd lokal-utvikling
. -
Kjør følgende kommando for å generere
docker-compose-lokal/
../setup-lokal-utvikling.sh fpsak fpformidling
-
Kjør
cd docker-compose-lokal
for å komme inn i mappen som nettopp ble laget av scriptet over.NB: Nå er det viktig å kjøre applikasjonene opp i riktig rekkefølge, både lokalt og i Docker.
- fpsak er avhengig av fpabakus (med avhengigheter), vtp og oracle.
- fpformidling er avhengig av fpsak (med avhengigheter), vtp og postgres.
Her må alle avhengighetene til FPSAK kjøres opp først, så FPSAK, og deretter FPFORMIDLING. Eksempel på rekkefølge:
- FPABAKUS (med avhengigheter), VTP, ORACLE (i Docker Compose) --> FPSAK (IDE) --> FPFORMIDLING (IDE)
-
Sett versjon som skal kjøres opp med å kjøre scriptet "update-versions.sh":
- For Mac skriv følgende i terminalen:
./update-versions.sh
- For Windows skriv følgende i terminalen:
sh update-versions.sh
Ønskes en annen versjon enn siste versjon, gjør som i eksempel 1 og 2 (steg 2).
- For Mac skriv følgende i terminalen:
-
Kjør opp avhengighetene til FPSAK:
docker compose up --quiet-pull --detach --scale fpsak=0 fpsak
-
Kjør deretter opp FPSAK i ønsket IDE.
-
Kjør opp avhengighetene til FPFORMIDLING (ble gjort i steg 5 og 6)
-
Kjør deretter opp FPFORMIDLING i ønsket IDE.
-
Kjør opp resten av verdikjeden
docker compose up --quiet-pull --detach --scale fpsak=0 --scale fpformidling=0