AirbossDokumentation

Lokale miljøer

Hvert workspace kan køre sin egen kopi af alle services fra jeres compose-fil, isoleret fra de andre workspaces, med PR'ens images og egne adresser.

Et lokalt miljø er workspacets egen kopi af alle services i jeres docker-compose.yml, som kører i Docker på din maskine. Hvert workspace får sit eget netværk, sin egen database og sine egne adresser, så to opgaver kan køre side om side uden at ramme hinanden. Du og agenten tester mod den samme kopi.

Sæt det op

Gå til siden Miljøer og tryk Indstil på kortet Lokale miljøer.

FeltHvad det gør
Repo og Compose-filHvor compose-filen ligger på GitHub. Har workspacet selv en klon af repoet, bruges dens fil, så en branch, der ændrer filen, kører med sin egen udgave.
RegistryHvor PR-images slås op. Tom betyder, at alle services kører master.
Højst kørendeHvor mange miljøer der må køre på én gang (1–5).
Stop efter (timer)Et miljø, ingen har brugt i så mange timer, stoppes. Data bliver liggende. 0 betyder aldrig.
Proxy-port80 giver adresser uden port. Vælg en anden, hvis port 80 er optaget.
Hostnavneport=navn, fx 8081=app, som giver app.acme-142.localhost. Andre HTTP-porte får servicens navn.
Faste portePorte, der skal blive på localhost, fx 4200. Kun ét miljø ad gangen ejer dem.
TestbrugerDen bruger, du og agenten logger ind med i miljøet.
Debug iRider, Visual Studio eller VS Code: standarden for knappen Debug.

Bruger compose-filen værdier som ${SSO_SIGNING_KEY}, står de under Værdier til compose-filen. Værdierne gemmes i Windows' hemmelighedslager og vises ikke igen. Lange værdier, som en signeringsnøgle på et par tusind tegn, deles over flere poster i lageret og samles igen, når miljøet startes. En værdi kan højst være 81.920 tegn; er den længere, siger Airboss det i stedet for at gemme den.

Er registry'et i Azure, logger du ind med Log ind på Azure. Airboss bruger din egen az-login og gemmer ingen nøgler. Agenten får aldrig adgang til registry'et.

Er az logget ind på flere konti, viser rækken hvilken konto registry'et bruges med. Under Skift konto vælger du en anden, eller du vælger Log ind med en anden konto…, så Windows' kontovælger åbner, og den konto, du logger ind med, bliver registry'ets. Valget gælder kun Airboss; den konto, az ellers bruger som standard, ændres ikke. Står der Kontoen har ikke adgang til registry'et, er det et andet kontovalg, der skal til, ikke et nyt login.

Kortet Lokale miljøer på siden Miljøer med compose-filen, registry'ets konto med menuen Skift konto åben, værdier og to workspaces' miljøer
Kortet Lokale miljøer på siden Miljøer med compose-filen, registry'ets konto med menuen Skift konto åben, værdier og to workspaces' miljøer

Start et miljø

Åbn workspacets fane Miljøer og tryk Start på kortet Lokalt miljø. Starten kører i baggrunden og tager typisk nogle minutter:

  • Airboss henter compose-filen og skriver den om til en kopi, der kun taler med sig selv. Services kalder hinanden på servicenavn i stedet for gennem værten.
  • Hvor CI har bygget images til workspacets branch, bruges de. Alle andre services kører master. Ved hver service står, om den kører PR, master eller lokal.
  • Browseradresser bliver til hostnavne som app.acme-142.localhost bag én fælles proxy. Andre porte, fx SQL Server, flyttes per miljø på 127.0.0.1 (plads 1 lægger 10 000 til).

Kører der allerede så mange miljøer, som indstillingerne tillader, siger kortet hvilket der har været brugt mindst, og tilbyder Stop … og start.

Under pilen ved siden af Stop finder du Lokal build, som bygger workspacets egne images fra dets kloner, samt Nulstil data og Fjern miljøet.

Kortet Lokalt miljø: venter på data, adresser, en service i Rider og listen over services med PR- og master-images
Kortet Lokalt miljø: venter på data, adresser, en service i Rider og listen over services med PR- og master-images

Data

Et nyt miljø har kun den struktur, migratorerne laver. Kortet viser Venter på data og databasens connection string. Kopiér den med Kopiér connection string, kør jeres eget seed-værktøj mod den, og tryk Data er seedet.

Nulstil data sletter databasen. Miljøet skal derefter seedes igen.

Faste porte

Nogle frontends virker kun på en bestemt port på localhost, fx localhost:4200. Kun ét miljø ad gangen kan eje sådan en port. Tryk Brug til … ved adressen for at give den til dette miljø.

Debug en service

Har workspacets repos en Dockerfile til en service, har servicen knappen Debug i Rider, eller den IDE du har valgt i indstillingerne. Pilen ved siden af lader dig vælge en anden IDE for den ene gang.

Når du trykker:

  1. Servicens container erstattes af en lille videresender, der beholder navnet. Resten af miljøet kalder din debugger uden at vide det.
  2. Airboss skriver profilen Airboss efterfulgt af servicens navn (fx Airboss booking-api) i workspacets klon: en run-konfiguration i Rider, en profil i launchSettings.json i Visual Studio eller en launch-konfiguration med build-task i VS Code. Miljøvariablerne peger på adresser, din maskine kan nå: databasen, Kafka og de andre services på miljøets porte.
  3. Kortet viser, hvilken port processen skal lytte på, og hvor profilen ligger. Start profilen fra IDE'en. Indtil da svarer servicen ikke i miljøet.

Profilen kommer ikke med i et commit. Stop debug sætter containeren tilbage og lægger filerne tilbage, præcis som de var. Miljøvariabler viser værdierne, og Kopiér lægger dem på udklipsholderen, hvis du vil sætte dem op selv.

Agenten

Mens miljøet kører, ligger filen LOCAL-ENV.md i workspacet med adresser, testbruger og hvordan man ser status og log. En Copilot-session i Docker sidder på miljøets netværk og kalder services direkte. Agenten har værktøjet local_environment, som kan læse status og log, genstarte en service og bygge workspacets egne images. En service, du debugger, kan den ikke genstarte.

Stop og oprydning

Stop lukker miljøet, og data bliver liggende til næste start. Et workspace, der arkiveres, får sit miljø stoppet. Et workspace, der slettes, får sit miljø fjernet med data. Arbejdstid stopper aldrig et lokalt miljø.