Ամեն անգամ, երբ կիսվում եք Compose ֆայլով, գոյություն ունի երկու արտեֆակտ՝ այն, ինչ գրել եք, և այն, ինչ գործիքը արտապատկերում է փոփոխականները փոխարինելուց հետո։ Երկրորդը հաճախ ավելի զգայուն է, քան առաջինը, և հենց այն մարդիկ տեղադրում են խնդրի հաշվետվության մեջ՝ առանց կարդալու։ Եթե ստուգում եք միայն սկզբնաղբյուր ֆայլը, ստուգում եք սխալ փաստաթուղթը։

Համեմատեք, թե ինչ կարող է պարունակել յուրաքանչյուր պատճենը, նախքան որոշելը, թե ինչ հեռացնել։

Արտապատկերված մոդելը այլ փաստաթուղթ է

Compose-ը լուծում է միջավայրի փոփոխականները, միավորում է վերագրման ֆայլերը և ստեղծում է արդյունավետ կարգավորում, որը կարդացողն այլևս չի կարող տարբերել ձեռքով գրված արժեքներից։ Սկզբնաղբյուրում փոփոխականի անվան նման հղումը արտածման մեջ դառնում է հենց հաշվի նշանը։ Կառուցվածքը, որն օգտակար է դարձնում ֆայլը ախտորոշման համար, գոյատևում է այդ ձևափոխությունից. գոյատևում է նաև այն ամենը, ինչ երբեք չպետք է լիներ դրա մեջ։

Ինքներդ արտապատկերեք ֆայլը նախքան այն կցելը և վերաբերվեք այդ արտածմանը որպես ստուգվող արտեֆակտի։ Եթե չեք կարող այն արտապատկերել, չեք կարող իմանալ, թե ինչ եք պատրաստվում հրապարակել։

Գաղտնիքները տեղավորվում են ավելի շատ տեղերում, քան բանալու դաշտը

Սկսեք ակնհայտից՝ մասնավոր բանալիներ, նախապես համօգտագործված բանալիներ, նշաններ, գաղտնաբառեր և միացման URL-ներ, որոնք պարունակում են մուտքի տվյալներ։ Այնուհետև նայեք ամեն ինչին, ինչին մատնանշում է ֆայլը, որովհետև հղումը ջնջում չէ։ Ծառայության մեջ մոնտաժված միջավայրի ֆայլը, հոսթից կապված կարգավորման ֆայլը, նշան կրող պիտակը և գաղտնաբառ պարունակող հրամանի արգումենտը բոլորը ճամփորդում են տեղակայման հետ նույնիսկ այն ժամանակ, երբ 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

Չտեղակայեք ջնջված պատճենը, կարծես այն աշխատող բնօրինակն է։ Սա նկարագրություն է, և անվտանգ երևալու համար խմբագրված նկարագրությունը կձախողվի այնպես, ինչպես կարգավորման սխալները։

Եթե նյութը բացահայտվել է, փոխարինեք այն

Կցորդը հեռացնելը չի հեռացնում այն պատճենները, որոնք ուրիշներն արդեն պատրաստել են, և հայելիներն ու քեշերը պահում են իրենցը։ Օգտագործեք թողարկողի չեղարկման և փոխարինման գործընթացը այն ամենի համար, ինչ արտահոսել է, ապա թարմացրեք տեղակայումը։ Հերթականությունը կարևոր է, որովհետև նախ փոխարինելը և հետո չեղարկելը թողնում է պատուհան՝ երկու վավեր մուտքի տվյալով։

Աջակցության թեմաներում սկսեք ճշգրիտ սխալից, պատկերի տարբերակից, ցանցի ռեժիմից և այն մեկ ոչ գաղտնի կարգավորումից, որն կարևոր է։ Այս համակցությունը բացատրում է բացակայող սարքը կամ կոտրված երթուղին շատ ավելի հաճախ, քան բանալին։

Առնչվող հոդվածներ