Environment Variables
Muhit o'zgaruvchilari (Docker'da)
"Environment Variables" darsida ("Building CLI Apps" kursida) os.Getenv orqali muhit o'zgaruvchilarini o'qishni ko'rgan edingiz. Konteynerlar bilan ishlaganda bu ayniqsa muhim: konteyner ichidagi kod hech qachon o'zgarmasligi kerak (bitta image — dev, staging, production hammasida bir xil ishlatiladi), lekin sozlamalar (baza manzili, API kaliti) muhitdan-muhitga farq qiladi.
$ docker run -e APP_ENV=production -e PORT=9090 mening-serverim
# Bir nechtasini fayldan o'qish:
$ docker run --env-file .env mening-serverim-e KALIT=QIYMAT — konteyner ichiga bitta muhit o'zgaruvchisini uzatadi; Go kodingiz uni oddiy os.Getenv("APP_ENV") bilan o'qiydi, xuddi u to'g'ridan-to'g'ri terminalda o'rnatilgandek. --env-file esa ko'plab o'zgaruvchini bitta faylda (KALIT=QIYMAT qatorlari bilan) berish imkonini beradi — bu qo'lda o'nlab -e yozishdan qulayroq.
# Dockerfile ichida standart qiymat berish (docker run -e bilan bekor qilinishi mumkin):
ENV APP_ENV=development
ENV PORT=8080ENV buyrug'i Dockerfile ichida standart qiymatlarni belgilaydi — bu "Constants and Zero Values" darsida ko'rgan "standart qiymat, kerak bo'lsa bekor qilinadigan" g'oyasining Docker'dagi ko'rinishi. Muhim xavfsizlik qoidasi: hech qachon parol yoki API kalitini to'g'ridan-to'g'ri Dockerfile'ga yozmang (u image ichida abadiy qoladi va uni ko'rgan har kim o'qiy oladi) — buning o'rniga ularni har doim docker run -e yoki maxfiy ma'lumotlarni boshqarish tizimlari ("Secrets Management" darsida ko'ramiz) orqali uzating.
Key Takeaway
Key Takeaway:
Bitta image barcha muhitlarda (dev, staging, prod) bir xil ishlatiladi; ular orasidagi farq docker run -e yoki --env-file orqali beriladigan muhit o'zgaruvchilari bilan boshqariladi — sirlar esa hech qachon Dockerfile'ga yozilmaydi.
NEXT UP
Docker Compose Basics