Omgevingsvariabelen 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 uwdocker-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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain how to override environment variables at runtime?
What are the best practices for keeping secrets secure in Docker Compose?
How do Docker secrets work with Compose files?
Awesome!
Completion rate improved to 7.14
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, 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 uwdocker-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.
Bedankt voor je feedback!