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

bookOmgevingsvariabelen en Configuratie in Compose

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, voorkomt u het hard-coden van waarden zoals poorten, image-tags of inloggegevens direct in uw docker-compose.yml-bestand. In plaats daarvan verwijst u naar deze variabelen en Docker Compose vervangt hun waarden tijdens runtime. Deze aanpak is vooral nuttig bij het uitrollen van dezelfde applicatie naar verschillende omgevingen, zoals ontwikkeling, testen of productie.

Volg deze stappen om omgevingsvariabelen in uw Compose-bestand te definiëren en te gebruiken:

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

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

DB_PASSWORD=supersecret
APP_PORT=8080

Verwijs in uw docker-compose.yml naar deze variabelen als volgt:

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

Wanneer u 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 uw Compose-bestand en maakt uw 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, kunt u 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 u uitrolt met Docker Swarm, waarmee u geheimen veilig als bestanden in containers kunt plaatsen;
  • Verwijs naar geheimen als bestanden op de host en mount deze in de container met behulp van de volumes-sleutel in uw Compose-bestand.

Voorbeeld: Om te voorkomen dat een databasewachtwoord wordt blootgesteld, slaat u het op in een bestand genaamd db_password.txt en mount u 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

Deze aanpak houdt het daadwerkelijke geheim buiten het Compose-bestand en de omgevingsvariabelen, waardoor het risico op onbedoelde blootstelling wordt verminderd. Controleer altijd uw 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?

Select the correct answer

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.

Awesome!

Completion rate improved to 7.14

bookOmgevingsvariabelen 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, voorkomt u het hard-coden van waarden zoals poorten, image-tags of inloggegevens direct in uw docker-compose.yml-bestand. In plaats daarvan verwijst u naar deze variabelen en Docker Compose vervangt hun waarden tijdens runtime. Deze aanpak is vooral nuttig bij het uitrollen van dezelfde applicatie naar verschillende omgevingen, zoals ontwikkeling, testen of productie.

Volg deze stappen om omgevingsvariabelen in uw Compose-bestand te definiëren en te gebruiken:

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

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

DB_PASSWORD=supersecret
APP_PORT=8080

Verwijs in uw docker-compose.yml naar deze variabelen als volgt:

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

Wanneer u 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 uw Compose-bestand en maakt uw 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, kunt u 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 u uitrolt met Docker Swarm, waarmee u geheimen veilig als bestanden in containers kunt plaatsen;
  • Verwijs naar geheimen als bestanden op de host en mount deze in de container met behulp van de volumes-sleutel in uw Compose-bestand.

Voorbeeld: Om te voorkomen dat een databasewachtwoord wordt blootgesteld, slaat u het op in een bestand genaamd db_password.txt en mount u 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

Deze aanpak houdt het daadwerkelijke geheim buiten het Compose-bestand en de omgevingsvariabelen, waardoor het risico op onbedoelde blootstelling wordt verminderd. Controleer altijd uw 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?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 4
some-alt