Wat zijn Environment Variables?
Environment Variables (omgevingsvariabelen) zijn dynamische waarden die de werking van een container beïnvloeden. Ze worden gebruikt om configuratie, credentials of runtime-instellingen door te geven aan een container zonder de image aan te passen. Denk hierbij aan zaken als gebruikersnamen, wachtwoorden of API-keys.
Casus
Een ontwikkelaar bouwt een applicatie die verbinding maakt met een database. De gebruikersnaam en het wachtwoord verschillen per omgeving (lokaal, staging, productie). Door deze waarden als environment variables in te stellen, hoeft de code zelf niet aangepast te worden voor elke omgeving.
Hoe werken Environment Variables?
Environment variables worden doorgegeven aan een container op het moment dat deze wordt gestart. Binnen de container kunnen ze worden gelezen via bijvoorbeeld process.env
(Node.js), os.environ
(Python) of $ENV_VAR
(Bash).
Er zijn meerdere manieren om deze variabelen toe te voegen. Je kunt environment variables bijvoorbeeld rechtstreeks meegeven bij het starten van een container:
docker run -e APP_ENV=production -e API_KEY=123abc my_image
Je kunt ze ook instellen in de dockerfile met ENV
:
ENV APP_ENV=production
Daarnaast kun je de environment variables ook in het docker-compose bestand onder services zetten:
services:
web:
image: my_image
environment:
- APP_ENV=production
- API_KEY=123abc
Hoe gebruik je environment variables?
Environment Variables worden gebruikt om containers flexibel te configureren zonder de onderliggende image aan te passen. Dit is essentieel voor het aanpassen van instellingen tussen verschillende omgevingen (zoals ontwikkeling, testen en productie) en voor het beveiligen van gevoelige gegevens.
Casus
Een team werkt aan een applicatie die in zowel development als productie draait. Door environment variables te gebruiken voor databaseverbindingen, kunnen ze eenvoudig wisselen tussen een lokale testdatabase en de productiedatabase zonder code aan te passen.
Volgende stap: Stappen Environment Variables