Miljövariabel (env)
En namngiven inställning som ett program läser från sin omgivning när det startar, i stället för att den står i programkoden.
- Kallas även
- environment variable, env-variabel
- Kategorier
- UtvecklingsflödeInfrastrukturSäkerhet
Miljövariabel, env, environment variable, env-variabel, miljövariabler, miljövariabeln, .env-fil
Enkel förklaring
En miljövariabel är en inställning med ett namn och ett värde, till exempel SPRAK=sv. Den står inte i
själva programmet, utan i programmets omgivning, miljön. Programmet läser den när det startar.
Det gör att samma program kan användas på olika sätt: med testinställningar på en dator och med riktiga inställningar på en annan, utan att koden ändras.
Teknisk förklaring
Varje körande program, en process, har en lista med miljövariabler i formen NAMN=värde. Namnen
skrivs med versaler, siffror och understreck. Å, ä och ö fungerar inte i namnen. När ett
program startar ett annat ärver det nya programmet en kopia av listan.
Miljövariabler sätts av systemet, i terminalen eller av verktyg som startar program. En .env-fil är
en vanlig textfil med rader i formen NAMN=värde. Verktyg som Docker Compose kan läsa in den och göra
raderna till miljövariabler eller använda dem i sin konfiguration.
$ export SPRAK=sv$ echo $SPRAKsvPraktiskt exempel
Kodkollektivet Academys automatiska tester sätter två miljövariabler i sin pipeline:
CI=trueberättar för verktygen att de körs i en automatisk testmiljö. Testverktyget beter sig då strängare: det stoppar om någon av misstag har markerat att bara vissa tester ska köras.ASTRO_TELEMETRY_DISABLED=1stänger av att webbramverket Astro skickar anonym användningsstatistik.
Programmen läser variablerna när de startar. Ingen kod behöver ändras för att byta beteende.
När och varför används det?
Miljövariabler används för inställningar som skiljer sig mellan miljöer: adresser, språk, felsökningsläge och ofta också lösenord och nycklar. Då behöver hemligheterna inte stå i koden.
Rekommendation:
- Lägg aldrig en
.env-fil med hemligheter i Git. Skriv in den i.gitignore. - Ge filen rättigheter så att bara rätt användare kan läsa den.
Vanliga missförstånd
- “En
.env-fil är säker.” Nej. Den är en vanlig, okrypterad textfil. - “Miljövariabler är ett säkert förvar för hemligheter.” De håller hemligheten utanför koden, men kan synas i loggar, felmeddelanden och för andra program med rätt behörighet.
- “En ändrad miljövariabel gäller direkt.” Oftast inte. Ett program läser miljön när det startar och måste startas om för att se ändringen.