మల్టీ-సినారియో డాకర్ ప్యాటర్న్
మీ ఎన్విరాన్మెంట్ను స్థిరంగా ఉంచడానికి మీరు Dockerని ఉపయోగిస్తారు. కానీ అది ఎల్లప్పుడూ పని చేస్తుందా? సమస్య Docker వల్ల కాదు. అది మీ ప్రాజెక్ట్ స్ట్రక్చర్ వల్ల. మీరు బహుళ Dockerfiles కలిగి ఉన్నప్పుడు, వేర్వేరు ఫలితాలు వచ్చే అవకాశం ఉంది. దీనివల్ల ఒకే రిపోజిటరీలో అనేక సారూప్య ఎన్విరాన్మెంట్లు ఉండి, అవి కాలక్రమేణా ఒకదానికొకటి భిన్నంగా మారవచ్చు.
మల్టీ-సినారియో డాకర్ ప్యాటర్న్ ఈ సమస్యను పరిష్కరిస్తుంది. ఇది ఒక సరళమైన ఆలోచనపై ఆధారపడి ఉంటుంది: ఒకే రన్టైమ్ మరియు బహుళ డిప్లాయ్మెంట్ సినారియోలు. మీరు మీ Dockerfile మరియు బేస్ ఎన్విరాన్మెంట్ను ఒకేలా ఉంచుతారు. తేడాలు కేవలం సినారియో స్థాయి వద్ద మాత్రమే అనుమతించబడతాయి.
సినారియో అనేది ఎన్విరాన్మెంట్ను ప్రారంభించడానికి ఒక స్వతంత్ర యూనిట్. ఇందులో ఇవి ఉంటాయి:
- docker-compose.yml
- .env
- Makefile
- devcontainer.json
- additional scripts
అన్ని సినారియోలు ఒకే రన్టైమ్ మరియు రిసోర్స్లను పంచుకుంటాయి. అవి కేవలం సిస్టమ్ ఎలా ప్రారంభించబడాలో మాత్రమే మారుస్తాయి. ఈ విధంగా, మీరు dev మరియు prod మధ్య ఉండే దాగి ఉన్న తేడాలను నివారించవచ్చు.
ఈ ప్యాటర్న్ వీటిని అందిస్తుంది:
- అన్ని సినారియోల కోసం ఒకే రన్టైమ్
- లాంచ్ సినారియోల స్పష్టమైన విభజన
- ప్రొడక్షన్ నుండి dev టూల్స్ యొక్క ఐసోలేషన్
- కేంద్రీకృత కాన్ఫిగరేషన్
మీరు ఈ ప్యాటర్న్ను Docker లేదా Podmanతో ఉపయోగించవచ్చు. ఇది ఏదైనా నిర్దిష్ట కంటైనర్ ఇంజిన్కు పరిమితం కాదు.
Docker ప్రవర్తనను స్థిరంగా ఉంచడానికి మీరు ఉపయోగించే పద్ధతి ఏమిటి? మీ అనుభవాన్ని కామెంట్లలో పంచుకోండి.
మూలం: https://dev.to/outcomer/the-multi-scenario-docker-pattern-how-to-build-a-reproducible-docker-environment-for-any-conditions-aho ఐచ్ఛిక అభ్యాస సమూహం: https://github.com/outcomer/multi-scenario-docker-pattern