Het Multi-Scenario Docker Pattern
Je gebruikt Docker om je omgeving consistent te houden. Maar werkt dat altijd? Het probleem is niet Docker. Het is je projectstructuur. Wanneer je meerdere Dockerfiles hebt, is het makkelijk om verschillende resultaten te krijgen. Dit kan leiden tot een enkele repository met veel vergelijkbare omgevingen die uit elkaar gaan lopen.
Het Multi-Scenario Docker Pattern lost dit probleem op. Het is gebaseerd op een eenvoudig idee: één runtime en meerdere deployment-scenario's. Je houdt je Dockerfile en basisomgeving hetzelfde. Verschillen zijn alleen toegestaan op scenario-niveau.
Een scenario is een zelfstandige eenheid voor het opstarten van een omgeving. Het bevat:
- docker-compose.yml
- .env
- Makefile
- devcontainer.json
- extra scripts
Alle scenario's delen dezelfde runtime en resources. Ze veranderen alleen de manier waarop het systeem wordt opgestart. Op deze manier voorkom je verborgen verschillen tussen dev en prod.
Het patroon biedt:
- een enkele runtime voor alle scenario's
- expliciete scheiding van launch-scenario's
- isolatie van dev-tools van productie
- gecentraliseerde configuratie
Je kunt dit patroon gebruiken met Docker of Podman. Het is niet gebonden aan een specifieke container engine.
Wat is jouw favoriete patroon om Docker-gedrag consistent te houden? Deel je ervaring in de reacties.
Bron: https://dev.to/outcomer/the-multi-scenario-docker-pattern-how-to-build-a-reproducible-docker-environment-for-any-conditions-aho Optionele leercommunity: https://github.com/outcomer/multi-scenario-docker-pattern