Transmiterea unei variabile proxy Compose într-un container
Fă variabilele proxy parte din mediul serviciului Compose, în loc să presupui că un fișier .env al proiectului le injectează automat.
Fișierul .env al proiectului Compose furnizează valori de interpolare. Pentru a transmite una dintre aceste valori unui container, fă referire la ea în configurația serviciului.
De exemplu, .env conține punctul final al proxy-ului:
HTTP_PROXY=http://203.0.113.10:8080
Serviciul îl folosește atât pentru cererile HTTP, cât și pentru cele HTTPS:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
Înlocuiește adresa din documentație și imaginea; alege un punct final HTTP compatibil din serviciul tău sau din lista de proxy HTTP. Un proxy HTTP obișnuit poate transporta HTTPS prin CONNECT dacă acceptă tunelul solicitat.
O intrare explicită env_file este o altă modalitate de a transmite variabilele unui fișier ales către un serviciu. Fișierul de interpolare al proiectului nu acționează ca un env_file implicit al containerului.
Verificarea a ceea ce a ajuns în aplicație
docker compose config afișează configurația rezolvată a serviciului. În schimb, docker compose config --environment afișează valorile folosite la interpolare.
Compară mediul serviciului cu procesul aplicației. Un container existent nu primește valori noi când editezi .env; aplică modificarea prin ciclul de viață Compose prevăzut, ținând cont de o eventuală întrerupere a serviciului.
Dacă variabila lipsește, corectează configurația serviciului. Dacă este prezentă, dar cererile rămân directe, verifică suportul de proxy al clientului HTTP. Injectarea prin mediu furnizează configurație; aplicația trebuie să o folosească.