0Pricing
Docker & DevOps Fundamentals · درس

متغيرات البيئة وملفات .env

اضبطوا خدمات Compose بوضوح باستخدام متغيرات البيئة واستبدال المتغيرات وملف .env، بحيث يعمل ملف Compose واحد في بيئات التطوير والتجهيز والإنتاج

متغيرات البيئة وملفات .env درس مجاني في Docker & DevOps Fundamentals على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Docker & DevOps Fundamentals، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Docker & DevOps Fundamentals 4 دروس في المجموع.

لماذا نفصل الإعدادات؟

يُعد تضمين كلمات المرور والمنافذ مباشرةً في ملف Compose أمرًا هشًا وغير آمن. تتيح متغيرات البيئة تغيير السلوك حسب البيئة دون تعديل YAML.

  • إبقاء الأسرار خارج نظام التحكم في الإصدارات
  • إعادة استخدام ملف Compose واحد في كل مكان
  • تجاوز القيم أثناء التشغيل

المفتاح environment

أعلن عن المتغيرات داخل خدمة تحت environment على هيئة map. تُحقن هذه المتغيرات في الحاوية عند بدء التشغيل.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: secret

صيغة القائمة

يقبل المفتاح نفسه أيضًا قائمة من السلاسل النصية بالصيغة KEY=VALUE. اختر الصيغة التي تجدها أوضح للقراءة.

services:
  db:
    image: postgres:16
    environment:
      - POSTGRES_USER=app
      - POSTGRES_PASSWORD=secret

ملف .env

يقرأ Compose تلقائيًا ملفًا باسم .env في مجلد المشروع. عرّف القيم هناك مرة واحدة، ثم أشر إليها باستخدام الاستبدال ${VAR}.

# .env
PG_USER=app
PG_PASS=secret
WEB_PORT=8080

استبدال المتغيرات

استخدم ${VAR} في أي موضع داخل ملف Compose. يستبدله Compose بالقيمة الموجودة في .env أو في shell قبل التحليل.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: ${PG_USER}
      POSTGRES_PASSWORD: ${PG_PASS}

القيم الافتراضية

وفّر قيمة احتياطية باستخدام ${VAR:-default}. إذا كان المتغير غير معيّن أو فارغًا، تُستخدم القيمة الافتراضية، مما يبقي المكدس عاملًا دون ملف .env مكتمل.

ports:
  - "${WEB_PORT:-80}:80"

المتغيرات المطلوبة

استخدم ${VAR:?message} لجعل المتغير إلزاميًا. يوقف Compose التنفيذ مع عرض رسالتك إذا كان المتغير مفقودًا، وبذلك يكتشف سوء الإعداد مبكرًا.

environment:
  API_KEY: ${API_KEY:?API_KEY must be set}

التوجيه env_file

لتمرير ملف كامل من المتغيرات مباشرةً إلى الحاوية (وليس للاستخدام في الاستبدال فقط)، استخدم env_file. يصبح كل سطر متغير بيئة داخل الحاوية.

services:
  api:
    image: myapi:1.0
    env_file:
      - api.env

قواعد أسبقية التطبيق

عندما يُعرَّف متغيّر في عدة مواضع، يطبّق Compose ترتيبًا للأولوية. تتغلب بيئة الصدفة على .env؛ ويتغلب الإدخال الصريح environment: على env_file.

  • تفوز خيارات الصدفة أو CLI، مثل -e
  • ثم environment:
  • ثم env_file
  • ثم الإعدادات الافتراضية للصورة

فحص القيم المحلولة

شغّل docker compose config لطباعة ملف Compose المحلول بالكامل بعد تطبيق جميع الاستبدالات. وهذا مفيد جدًا للتحقق مما سيُشغَّل فعليًا.

docker compose config

أبقِ الأسرار خارج Git

أودِع ملف .env.example الذي يحتوي على قيم نائبة، وأضف ملف .env الحقيقي إلى .gitignore. وبالنسبة إلى أسرار الإنتاج الفعلية، يُفضَّل استخدام Docker secrets بدلًا من متغيّرات البيئة.

# .gitignore
.env

تحقق سريع

كيف تعمل القيم الافتراضية في الاستبدال؟

مراجعة

أصبح بإمكانك الآن إعداد Compose بطريقة منظمة باستخدام بيانات البيئة:

  • يحقن environment: المتغيّرات لكل خدمة
  • يستخدم ملف .env لاستبدال ${VAR}
  • يوفّر :- قيمًا افتراضية، بينما يحدّد :? القيم المطلوبة
  • يعرض docker compose config النتيجة المحلولة

وهذا يجعل ملف Compose واحدًا قابلًا للنقل بين جميع البيئات.

الأسئلة الشائعة

هل درس «متغيرات البيئة وملفات .env» مجاني؟

نعم — نص درس «متغيرات البيئة وملفات .env» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Docker & DevOps Fundamentals، انتقل إلى CoddyKit PRO. تتضمن دورة Docker & DevOps Fundamentals 4 دروس في المجموع.

ماذا ستتعلم في «متغيرات البيئة وملفات .env»؟

اضبطوا خدمات Compose بوضوح باستخدام متغيرات البيئة واستبدال المتغيرات وملف .env، بحيث يعمل ملف Compose واحد في بيئات التطوير والتجهيز والإنتاج تتمرن على Docker & DevOps Fundamentals مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Docker & DevOps Fundamentals؟

لا تُشترط خبرة سابقة. Docker & DevOps Fundamentals على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «متغيرات البيئة وملفات .env»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Docker & DevOps Fundamentals هذا؟

نعم. كل درس في Docker & DevOps Fundamentals يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما Docker Compose؟
  2. كتابة ملف Compose
  3. نشر التطبيقات متعددة الخدمات
  4. متغيرات البيئة وملفات .env
← العودة إلى Docker & DevOps Fundamentals