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).

OmgevingVariabeleWaarde
DevAPP_ENVdevelopment
ProdAPP_ENVproduction
StagingAPI_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
  1. Werken met een .env bestand Actie: Maak een .env bestand aan in dezelfde map als je docker-compose.yml. Voeg variabelen toe in KEY=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}
  1. 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 of docker-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.