Meer informatie over Environment Variables
Stappen in de Systematische Probleem Aanpak
1. Doel
Applicaties configureren zonder dat je de code hoeft aan te passen, door gebruik te maken van omgevingsvariabelen in Docker.
2. Subdoelen
Splits het proces in deelstappen, zoals:
- Definiëren van variabelen
- Werken met
.envbestanden - Lezen van variabelen binnen de applicatie
Casus
Een team ontwikkelt een API die in verschillende omgevingen moet draaien (dev, staging, prod).
Omgeving Variabele Waarde Dev APP_ENVdevelopment Prod APP_ENVproduction Staging API_KEYtest-123abc
3. Fasen
1a. Environment Variable instellen via Docker CLI
Actie: Start een container en geef een variabele mee met -e of --env. Voorbeeld: docker run -e APP_ENV=production my_image
Resultaat: De container heeft toegang tot APP_ENV=production.
1b. Environment Variable instellen in docker-compose.yml
Actie: Voeg environment toe aan een service in je docker-compose.yml.
Resultaat: De container krijgt de variabelen bij het opstarten.
Voorbeeld:
services:
app:
image: my_image
environment:
- NODE_ENV=development- Werken met een .env bestand
Actie: Maak een
.envbestand aan in dezelfde map als jedocker-compose.yml. Voeg variabelen toe inKEY=VALUEformaat. Resultaat: Variabelen uit het.envbestand worden ingelezen.
Voorbeeld:
API_KEY=123abc
APP_ENV=stagingIn je docker Compose bestand:
environment:
- API_KEY=${API_KEY}- Variabelen gebruiken in je applicatie
Actie: Lees de variabelen in je code. De manier waarop je dit doet verschilt per taal. voor Node.js is dit:
process.env.API_KEYen voor Python:os.environ['API_KEY']. Resultaat: De applicatie gebruikt de juiste instellingen zonder codewijziging.
Correctieve feedback tijdens de uitvoer
- Fout: “undefined environment variable”.
Controleer of je variabele correct gespeld is en bestaat in je
.envofdocker-compose.yml. - Fout: Variabele lijkt niet geladen.
Herstart je containers (
docker-compose down && docker-compose up) en check de.envlocatie.
Tips voor efficiënt gebruik van Environment Variables
- Houd gevoelige gegevens in een aparte
.envdie niet in versiebeheer staat (gebruik.gitignore). - Gebruik een
.env.templatebestand om te documenteren welke variabelen nodig zijn.
