Skip to content

Environment Variables (এনভায়রনমেন্ট ভেরিয়েবল) ⚙️

ডকার কন্টেইনারকে ডাইনামিক এবং কনফিগারেবল করার সবচেয়ে সহজ উপায় হলো Environment Variables ব্যবহার করা। এর মাধ্যমে আপনি কোড পরিবর্তন না করেই অ্যাপ্লিকেশনের কনফিগারেশন (যেমন: ডাটাবেস ইউআরএল, এপিআই কি, বা ডেভেলপার মোড) পরিবর্তন করতে পারবেন।


১. -e ফ্ল্যাগ ব্যবহার করে ভেরিয়েবল সেট করা

কন্টেইনার রান করার সময় আপনি সরাসরি কমান্ড লাইনে ভেরিয়েবল সেট করে দিতে পারেন:

bash
docker run -e MY_VAR=Hello nginx

একাধিক ভেরিয়েবল সেট করা:

bash
docker run -e DB_USER=admin -e DB_PASS=secret123 mysql

২. ফাইল থেকে ভেরিয়েবল লোড করা (.env files)

যখন অনেকগুলো ভেরিয়েবল থাকে, তখন বারবার কমান্ড লাইনে লিখা বিরক্তিকর এবং ঝুঁকিপূর্ণ। সেক্ষেত্রে আমরা একটি .env ফাইল ব্যবহার করি।

১. প্রথমে একটি ফাইল তৈরি করুন, নাম দিন .env:

text
DB_HOST=db.example.com
DB_USER=ripon
DB_PASS=mypassword

২. কন্টেইনার রান করার সময় এই ফাইলটি লিঙ্ক করুন:

bash
docker run --env-file .env my-app

৩. Docker Compose-এ এনভায়রনমেন্ট

Docker Compose ফাইলে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহারের দুটি প্রধান উপায় আছে:

yaml
services:
  web:
    image: my-app
    environment:
      - APP_COLOR=blue
      - DEBUG=true
    # অথবা ফাইল ব্যবহার করে:
    env_file:
      - ./.env

৪. Secrets vs Environment Variables

সব ধরনের তথ্য এনভায়রনমেন্ট ভেরিয়েবলে রাখা উচিত নয়।

  • Environment Variables: সাধারণ কনফিগারেশনের জন্য ঠিক আছে (যেমন: PORT, LOG_LEVEL)।
  • Docker Secrets: অত্যন্ত সংবেদনশীল তথ্যের জন্য (যেমন: পাসওয়ার্ড, প্রাইভেট কি, সার্টিফিকেট) এনভায়রনমেন্ট ভেরিয়েবলের চেয়ে Secrets বা Vault ব্যবহার করা বেশি নিরাপদ। কারণ এনভায়রনমেন্ট ভেরিয়েবলগুলো docker inspect দিলেই দেখা যায়।

৫. Configuration Management (বেস্ট প্র্যাকটিস)

  • Hardcoded বর্জন করুন: কোডের ভেতরে সরাসরি পাসওয়ার্ড বা আইপি এড্রেস লিখবেন না।
  • Default Value: অ্যাপ্লিকেশনে এনভায়রনমেন্ট ভেরিয়েবলের একটি ডিফল্ট ভ্যালু রাখুন।
  • .gitignore ব্যবহার করুন: কখনোই আপনার .env ফাইল গিট (Github/Gitlab)-এ পুশ করবেন না। এটি সবসময় আপনার লোকাল মেশিনে বা সিক্রেট ম্যানেজারে থাকা উচিত।

কমান্ড সামারি টেবিল

CommandPurpose
docker run -e KEY=VALUEএকটি ভেরিয়েবল সেট করে
docker run --env-file <file>ফাইল থেকে সব ভেরিয়েবল লোড করে
docker exec -it <id> envকন্টেইনারের ভেতরের সব ভেরিয়েবল দেখতে
docker inspect <id>কনফিগারেশন ডিটেইলসে ভেরিয়েবলগুলো দেখতে

CAUTION

পাসওয়ার্ড বা এপিআই কি ব্যবহারের সময় কমান্ড লাইন হিস্টোরি এবং docker inspect আউটপুট নিয়ে সতর্ক থাকুন।

Released under the MIT License.