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
.env
bestanden - 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_ENV
development Prod APP_ENV
production Staging API_KEY
test-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
.env
bestand aan in dezelfde map als jedocker-compose.yml
. Voeg variabelen toe inKEY=VALUE
formaat. Resultaat: Variabelen uit het.env
bestand worden ingelezen.
Voorbeeld:
API_KEY=123abc
APP_ENV=staging
In 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_KEY
en 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
.env
ofdocker-compose.yml
. - Fout: Variabele lijkt niet geladen.
Herstart je containers (
docker-compose down && docker-compose up
) en check de.env
locatie.
Tips voor efficiënt gebruik van Environment Variables
- Houd gevoelige gegevens in een aparte
.env
die niet in versiebeheer staat (gebruik.gitignore
). - Gebruik een
.env.template
bestand om te documenteren welke variabelen nodig zijn.