Compose ఫైల్ను పంచుకున్న ప్రతిసారీ రెండు ఆర్టిఫ్యాక్ట్లు ఉంటాయి: మీరు రాసినది, మరియు వేరియబుల్స్ భర్తీ చేసిన తర్వాత సాధనం రెండర్ చేసేది. రెండవది తరచుగా మొదటిది కంటే సున్నితమైనది, మరియు చదవకుండా ప్రజలు సమస్య నివేదికలో అతికించేది అదే. మీరు మూల ఫైల్ను మాత్రమే సమీక్షిస్తే, తప్పు పత్రాన్ని సమీక్షిస్తున్నారు.

ఏమి తొలగించాలో నిర్ణయించే ముందు ప్రతి కాపీలో ఏమి ఉండవచ్చో పోల్చండి.

రెండర్ చేసిన నమూనా వేరే పత్రం

Compose పర్యావరణ వేరియబుల్స్ను పరిష్కరిస్తుంది, ఓవర్రైడ్ ఫైల్లను విలీనం చేస్తుంది మరియు పాఠకుడు చేతితో రాసిన విలువల నుండి ఇకపై వేరు చేయలేని ప్రభావవంతమైన కాన్ఫిగరేషన్ను ఉత్పత్తి చేస్తుంది. మూలంలో వేరియబుల్ పేరు వంటి సూచన అవుట్పుట్లో ఖాతా టోకెన్గానే మారుతుంది. ఫైల్ను నిర్ధారణకు ఉపయోగకరంగా చేసే నిర్మాణం ఆ మార్పును దాటి నిలిచిపోతుంది; అందులో ఎప్పుడూ ఉండకూడనివి కూడా నిలిచిపోతాయి.

జోడించే ముందు ఫైల్ను మీరే రెండర్ చేయండి మరియు ఆ అవుట్పుట్ను మీరు సమీక్షిస్తున్న ఆర్టిఫ్యాక్ట్గా పరిగణించండి. దాన్ని రెండర్ చేయలేకపోతే, మీరు ఏమి ప్రచురించబోతున్నారో తెలియదు.

రహస్యాలు కీ ఫీల్డ్ కంటే ఎక్కువ చోట్లలో ఉంటాయి

స్పష్టమైనదానితో ప్రారంభించండి: ప్రైవేట్ కీలు, ముందుగా పంచుకున్న కీలు, టోకెన్లు, పాస్వర్డ్లు మరియు ఆధారాలను కలిగి ఉన్న కనెక్షన్ URLలు. ఆ తర్వాత ఫైల్ సూచించే ప్రతిదీ చూడండి, ఎందుకంటే సూచన అంటే తొలగింపు కాదు. సేవలో మౌంట్ చేసిన env ఫైల్, హోస్ట్ నుండి బైండ్ చేసిన కాన్ఫిగరేషన్ ఫైల్, టోకెన్ మోసే లేబుల్ మరియు పాస్వర్డ్ ఉన్న కమాండ్ ఆర్గ్యుమెంట్, YAML శుభ్రంగా కనిపించినా డిప్లాయ్మెంట్తో పాటు వెళ్తాయి. హామీ ఇచ్చే పేరు ఉన్న వేరియబుల్లో అతికించిన కీ కూడా కీయే.

హోస్ట్ మార్గాలు మరియు సేవా పేర్లు రెండవ రకమైన సమాచారాన్ని లీక్ చేస్తాయి. ఇంటి డైరెక్టరీ పేరు, అంతర్గత హోస్ట్నేమ్ లేదా నెట్వర్క్ పరిధి ఒక్క ఆధారం లేకుండా వ్యక్తిని లేదా సంస్థను గుర్తించగలవు, ఆ సందర్భం కూడా అదే కారణంతో తొలగించదగినది.

రహస్య ప్రకటన రహస్యం కాదు

Compose రహస్య వస్తువులు ప్రకటనను పదార్థం నుండి వేరు చేస్తాయి: సేవకు మార్గం లేదా లక్ష్యం లభిస్తుంది, కంటెంట్ మరెక్కడో నివసిస్తుంది. పదార్థాన్ని భర్తీ చేస్తున్నప్పుడు ప్రకటనను ఉంచడం సాధారణంగా సరైన మార్పిడి, ఎందుకంటే సమీక్షకుడు రహస్యం ఉందని మరియు అది ఎలా మౌంట్ చేయబడిందో చూడాలి. నిలిచిపోకూడనిది కంటెంట్ స్వయంగా.

లేబుళ్లు మరియు వ్యాఖ్యలు కూడా అదే ప్రవర్తనకు అర్హం. ఏ వాల్ట్ మార్గం ఉత్పత్తి కీని ఉంచుతుందో చెప్పే వ్యాఖ్య, కీ లేకపోయినా దాడి చేసేవారికి ఎక్కడ చూడాలో చెబుతుంది.

ఫైల్ ఇంకా నిర్ధారణ చేయగలిగేలా ఆకారాన్ని ఉంచండి

నెట్వర్క్ మోడ్, ఇమేజ్ వెర్షన్ లేదా సామర్థ్య సెట్టింగ్లను తొలగించే రిడాక్షన్ ఎవరూ డీబగ్ చేయలేని ఫైల్ను ఉత్పత్తి చేస్తుంది. సున్నితమైన విలువలను భర్తీ చేసి సంబంధాలను ఉంచండి: ఏ సేవ ఏమి మౌంట్ చేస్తుంది, ఏ నెట్వర్క్లో చేరుతుంది, ఏ పరికరం అవసరం. ఇదే పాఠకుడు తప్పిపోయిన మార్గాన్ని లేదా అందుబాటులో లేని పరికరాన్ని వివరించడానికి ఉపయోగించే భాగం. సహచరుడు తన పనిచేస్తున్న డిప్లాయ్మెంట్తో పోల్చగల సంస్కరణ కూడా ఇదే.

docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml

రిడాక్ట్ చేసిన కాపీని పనిచేస్తున్న అసలుగా భావించి డిప్లాయ్ చేయవద్దు. ఇది ఒక వివరణ, మరియు సురక్షితంగా కనిపించేలా సవరించిన వివరణ కాన్ఫిగరేషన్ బగ్లలా కనిపించే విధంగా విఫలమవుతుంది.

పదార్థం బహిర్గతమై ఉంటే, దానిని భర్తీ చేయండి

జోడింపును తొలగించడం ఇతరులు ఇప్పటికే చేసిన కాపీలను తొలగించదు, అద్దాలు మరియు కాష్లు తమవి ఉంచుకుంటాయి. లీక్ అయిన ప్రతిదానికీ జారీచేసేవారి రద్దు మరియు భర్తీ ప్రక్రియను ఉపయోగించి, తర్వాత డిప్లాయ్మెంట్ను నవీకరించండి. క్రమం ముఖ్యం, ఎందుకంటే ముందు భర్తీ చేసి తర్వాత రద్దు చేస్తే రెండు చెల్లుబాటు అయ్యే ఆధారాలతో ఒక విండో మిగిలిపోతుంది.

సహాయ థ్రెడ్లలో ఖచ్చితమైన లోపం, ఇమేజ్ వెర్షన్, నెట్వర్క్ మోడ్ మరియు ముఖ్యమైన ఒక రహస్యం కాని సెట్టింగ్తో ప్రారంభించండి. ఆ కలయిక తప్పిపోయిన పరికరాన్ని లేదా విరిగిన మార్గాన్ని కీ కంటే చాలా ఎక్కువసార్లు వివరిస్తుంది.

సంబంధిత వ్యాసాలు