انتقال یک متغیر پروکسی Compose به یک کانتینر
متغیرهای پروکسی را بخشی از محیط سرویس Compose کنید، بهجای اینکه فرض کنید فایل .env پروژه آنها را خودکار تزریق میکند.
فایل پروژهٔ .env در Compose مقادیر درونیابی را فراهم میکند. برای دادن یکی از این مقادیر به یک کانتینر، آن را در پیکربندی سرویس ارجاع دهید.
برای نمونه، .env نقطهٔ پایانی پروکسی را در خود دارد:
HTTP_PROXY=http://203.0.113.10:8080
سرویس از آن هم برای درخواستهای مقصد HTTP و هم HTTPS استفاده میکند:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
نشانی مستندات و ایمیج را جایگزین کنید؛ یک نقطهٔ پایانی HTTP سازگار از سرویس خود یا از فهرست پروکسیهای HTTP برگزینید. یک پروکسی HTTP معمولی میتواند HTTPS را از طریق CONNECT منتقل کند، اگر تونل درخواستی را پشتیبانی کند.
یک env_file صریح راه دیگری برای انتقال متغیرهای یک فایل برگزیده به سرویس است. فایل درونیابی پروژه بهعنوان env_file ضمنی کانتینر عمل نمیکند.
بررسی اینکه چه چیزی به برنامه رسیده است
docker compose config پیکربندی حلشدهٔ سرویس را نشان میدهد. docker compose config --environment در عوض مقادیر بهکاررفته برای درونیابی را نشان میدهد.
محیط سرویس را با فرایند برنامه مقایسه کنید. کانتینر موجود با ویرایش .env مقادیر تازه دریافت نمیکند؛ تغییر را از چرخهٔ عمر موردنظر Compose اعمال کنید و وقفهٔ سرویس را در نظر بگیرید.
اگر متغیر وجود ندارد، پیکربندی سرویس را اصلاح کنید. اگر وجود دارد ولی درخواستها همچنان مستقیم میروند، پشتیبانی پروکسی کلاینت HTTP را بررسی کنید. تزریق محیط پیکربندی را فراهم میکند؛ برنامه باید آن را مصرف کند.