Skicka en Compose-proxyvariabel till en container
Gör proxyvariabler till en del av Compose-tjänstens miljö i stället för att anta att ett .env-fil i projektet injicerar dem automatiskt.
Compose-projektets .env-fil tillhandahåller interpoleringsvärden. För att ge ett av dessa värden till en container refererar du till det i tjänstens konfiguration.
Till exempel innehåller .env proxy-slutpunkten:
HTTP_PROXY=http://203.0.113.10:8080
Tjänsten använder den för både HTTP- och HTTPS-förfrågningar:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
Byt ut dokumentationsadressen och imagen; välj en kompatibel HTTP-slutpunkt från din tjänst eller från HTTP-proxylistan. En vanlig HTTP-proxy kan bära HTTPS via CONNECT om den stöder den begärda tunneln.
En explicit env_file-post är ett annat sätt att skicka en vald fils variabler till en tjänst. Projektets interpoleringsfil fungerar inte som en implicit container-env_file.
Kontrollera vad som nådde applikationen
docker compose config visar den lösta tjänstekonfigurationen. docker compose config --environment visar i stället de värden som användes för interpolering.
Jämför tjänstens miljö med applikationsprocessen. En befintlig container får inte nya värden när du redigerar .env; tillämpa ändringen via den avsedda Compose-livscykeln och räkna med avbrott i tjänsten.
Om variabeln saknas, rätta tjänstekonfigurationen. Om den finns men förfrågningarna ändå går direkt, kontrollera HTTP-klientens proxy-stöd. Miljöinjektion ger konfiguration; applikationen måste använda den.