Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Omgevingsvariabelen en Configuratie in Compose | Werken met Docker Compose
Docker Essentials

Omgevingsvariabelen en Configuratie in Compose

Veeg om het menu te tonen

Gebruik van omgevingsvariabelen in docker-compose.yml

Omgevingsvariabelen maken het mogelijk om flexibele en herbruikbare Docker Compose-configuraties te creëren. Door variabelen te definiëren, voorkom je het hard-coden van waarden zoals poorten, image-tags of inloggegevens direct in je docker-compose.yml-bestand. In plaats daarvan verwijs je naar deze variabelen en Docker Compose vervangt hun waarden tijdens runtime. Deze aanpak is vooral handig bij het uitrollen van dezelfde applicatie naar verschillende omgevingen, zoals ontwikkeling, testen of productie.

Om omgevingsvariabelen in je Compose-bestand te definiëren en te gebruiken, volg je deze stappen:

  • Sla omgevingsvariabelen op in een .env-bestand in dezelfde map als je docker-compose.yml;
  • Verwijs naar variabelen in je Compose-bestand met de ${VARIABLE_NAME}-syntaxis;
  • Overschrijf variabelen door ze direct in de shell of als onderdeel van je CI/CD-pijplijn mee te geven.

Stel dat je het databasewachtwoord en de applicatiepoort wilt configureren met omgevingsvariabelen. Maak een .env-bestand met de volgende inhoud:

DB_PASSWORD=supersecret
APP_PORT=8080

In je docker-compose.yml verwijs je naar deze variabelen als volgt:

version: "3.8"
services:
  web:
    image: myapp:latest
    ports:
      - "${APP_PORT}:80"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Wanneer je docker-compose up uitvoert, zal Docker Compose de waarden uit het .env-bestand in de configuratie plaatsen. Deze methode houdt gevoelige of omgevingsspecifieke gegevens buiten je Compose-bestand en maakt je setup beter overdraagbaar.

Beheer van geheimen en gevoelige gegevens in Compose-bestanden

Hoewel omgevingsvariabelen handig zijn, zijn ze niet altijd de meest veilige manier om gevoelige informatie zoals wachtwoorden, API-sleutels of certificaten te beheren. Omgevingsvariabelen kunnen soms zichtbaar zijn via logs, proceslijsten of versiebeheer als ze niet zorgvuldig worden behandeld. Om de beveiliging te verbeteren, kun je verschillende technieken gebruiken voor het beheren van geheimen in Docker Compose:

  • Sla gevoelige waarden op in een apart .env-bestand en zorg ervoor dat dit bestand is uitgesloten van versiebeheer via .gitignore;
  • Gebruik de ondersteuning van Docker Compose voor Docker secrets als je uitrolt met Docker Swarm, waarmee je geheimen veilig als bestanden in containers kunt mounten;
  • Verwijs naar geheimen als bestanden op de host en mount deze in de container met de volumes-sleutel in je Compose-bestand.

Voorbeeld: Om te voorkomen dat een databasewachtwoord wordt blootgesteld, sla je het op in een bestand genaamd db_password.txt en mount je het in de container:

services:
  db:
    image: postgres:latest
    volumes:
      - ./db_password.txt:/run/secrets/db_password
    environment:
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password

Met deze aanpak blijft het daadwerkelijke geheim buiten het Compose-bestand en de omgevingsvariabelen, waardoor het risico op onbedoelde blootstelling wordt verminderd. Controleer altijd je configuratie en workflows om te zorgen dat geheimen beschermd blijven, en commit nooit gevoelige gegevens naar versiebeheer.

question mark

Wat is het belangrijkste voordeel van het gebruik van omgevingsvariabelen in een Docker Compose-bestand?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 4
some-alt