برنامه نویسی

چگونه مطمئن شویم که Docker Compose از متغیرهای محیطی از فایل “.env” استفاده می کند

هنگام کار با Docker Compose، ممکن است با موقعیتی مواجه شوید که متغیرهای محیطی در شما تعریف شده است .env فایل به درستی برداشت نمی شود اگر متغیرهایی در پوسته خود تنظیم شده باشند که اولویت دارند، می تواند به ویژه ناامید کننده باشد. در اینجا یک راهنمای گام به گام برای اطمینان از اینکه Docker Compose از متغیرهای محیطی شما استفاده می کند آورده شده است .env فایل.

درک اولویت متغیر محیطی

Docker Compose از ترتیب اولویت زیر برای متغیرهای محیطی استفاده می کند:

  1. متغیرهای محیطی در پوسته تنظیم شده اند قبل از دویدن docker compose.
  2. متغیرهای محیطی تعریف شده در docker-compose.yml فایل.
  3. متغیرهای محیطی تعریف شده در .env فایل.

برای اطمینان از اینکه متغیرهای محیطی از .env فایل استفاده می شود، باید متغیرهای محیطی متناقض را در پوسته خود تنظیم کنید.

راهنمای گام به گام

  1. متغیر Environment را در پوسته خود تنظیم کنید:
    قبل از اجرای Docker Compose، هر متغیر محیطی را که ممکن است با متغیرهای موجود در شما تضاد داشته باشد، از حالت تنظیم خارج کنید .env فایل. مثلاً اگر دارید BACKEND_CORS_ORIGINS در پوسته خود قرار دهید، آن را از حالت تنظیم خارج کنید:

    unset BACKEND_CORS_ORIGINS
    
  2. Docker Compose را با .env فایل:
    پس از تنظیم متغیر محیطی، Docker Compose را برای ساخت و راه اندازی کانتینرهای خود اجرا کنید:

    docker compose up -d --build
    
  3. فرآیند را با یک اسکریپت خودکار کنید:
    برای ساده‌سازی فرآیند، می‌توانید اسکریپتی ایجاد کنید که متغیرهای محیط را از حالت تنظیم خارج کند و سپس Docker Compose را اجرا کند. در اینجا یک نمونه اسکریپت به نام آمده است restart.sh:

    #!/usr/bin/env sh
    set -e
    
    # Unset environment variables that might be set in the shell
    unset BACKEND_CORS_ORIGINS
    
    # Stop and remove existing containers, volumes, and networks
    docker compose down -v --remove-orphans
    
    # Build and start the containers
    docker compose up -d --build
    

    این اسکریپت را ذخیره کنید و هر زمان که اسکریپت را به روز کردید آن را اجرا کنید .env فایل:

    sh scripts/restart.sh
    
  4. بررسی متغیرهای محیطی:
    پس از راه اندازی کانتینرها، می توانید بررسی کنید که متغیرهای محیطی به درستی در داخل کانتینر در حال اجرا تنظیم شده اند:

    docker compose exec backend env | grep BACKEND_CORS_ORIGINS
    

نتیجه

با حذف متغیرهای محیطی در پوسته خود قبل از اجرای Docker Compose، می توانید اطمینان حاصل کنید که متغیرهای تعریف شده در .env فایل استفاده می شود. این رویکرد به جلوگیری از درگیری کمک می کند و تضمین می کند که کانتینرهای Docker شما به درستی پیکربندی شده اند. خودکار کردن فرآیند با یک اسکریپت می تواند باعث صرفه جویی در زمان و کاهش خطر خطا شود.

با دنبال کردن این مراحل، می توانید از دام های رایج جلوگیری کنید و مطمئن شوید که محیط Docker Compose شما به درستی تنظیم شده است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا