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

هنگام کار با Docker Compose، ممکن است با موقعیتی مواجه شوید که متغیرهای محیطی در شما تعریف شده است .env
فایل به درستی برداشت نمی شود اگر متغیرهایی در پوسته خود تنظیم شده باشند که اولویت دارند، می تواند به ویژه ناامید کننده باشد. در اینجا یک راهنمای گام به گام برای اطمینان از اینکه Docker Compose از متغیرهای محیطی شما استفاده می کند آورده شده است .env
فایل.
درک اولویت متغیر محیطی
Docker Compose از ترتیب اولویت زیر برای متغیرهای محیطی استفاده می کند:
-
متغیرهای محیطی در پوسته تنظیم شده اند قبل از دویدن
docker compose
. -
متغیرهای محیطی تعریف شده در
docker-compose.yml
فایل. -
متغیرهای محیطی تعریف شده در
.env
فایل.
برای اطمینان از اینکه متغیرهای محیطی از .env
فایل استفاده می شود، باید متغیرهای محیطی متناقض را در پوسته خود تنظیم کنید.
راهنمای گام به گام
-
متغیر Environment را در پوسته خود تنظیم کنید:
قبل از اجرای Docker Compose، هر متغیر محیطی را که ممکن است با متغیرهای موجود در شما تضاد داشته باشد، از حالت تنظیم خارج کنید.env
فایل. مثلاً اگر داریدBACKEND_CORS_ORIGINS
در پوسته خود قرار دهید، آن را از حالت تنظیم خارج کنید:unset BACKEND_CORS_ORIGINS
-
Docker Compose را با
.env
فایل:
پس از تنظیم متغیر محیطی، Docker Compose را برای ساخت و راه اندازی کانتینرهای خود اجرا کنید:docker compose up -d --build
-
فرآیند را با یک اسکریپت خودکار کنید:
برای سادهسازی فرآیند، میتوانید اسکریپتی ایجاد کنید که متغیرهای محیط را از حالت تنظیم خارج کند و سپس 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
-
بررسی متغیرهای محیطی:
پس از راه اندازی کانتینرها، می توانید بررسی کنید که متغیرهای محیطی به درستی در داخل کانتینر در حال اجرا تنظیم شده اند:docker compose exec backend env | grep BACKEND_CORS_ORIGINS
نتیجه
با حذف متغیرهای محیطی در پوسته خود قبل از اجرای Docker Compose، می توانید اطمینان حاصل کنید که متغیرهای تعریف شده در .env
فایل استفاده می شود. این رویکرد به جلوگیری از درگیری کمک می کند و تضمین می کند که کانتینرهای Docker شما به درستی پیکربندی شده اند. خودکار کردن فرآیند با یک اسکریپت می تواند باعث صرفه جویی در زمان و کاهش خطر خطا شود.
با دنبال کردن این مراحل، می توانید از دام های رایج جلوگیری کنید و مطمئن شوید که محیط Docker Compose شما به درستی تنظیم شده است.