Videresende en Compose-proxyvariabel til en container
Gør proxyvariabler til en del af Compose-tjenestemiljøet i stedet for at antage, at en .env-fil i projektet injicerer dem automatisk.
Projektfilen .env i Compose leverer interpolationsværdier. For at give en af disse værdier til en container skal du referere til den i tjenestekonfigurationen.
For eksempel indeholder .env proxyendpointet:
HTTP_PROXY=http://203.0.113.10:8080
Tjenesten bruger den til både HTTP- og HTTPS-destinationsanmodninger:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
Erstat dokumentationsadressen og imaget; vælg et kompatibelt HTTP-endpoint fra din tjeneste eller fra listen over HTTP-proxyer. En almindelig HTTP-proxy kan transportere HTTPS via CONNECT, hvis den understøtter den ønskede tunnel.
Et eksplicit env_file er en anden måde at give en valgt fils variabler til en tjeneste. Projektets interpolationsfil fungerer ikke som en implicit env_file for containeren.
Kontrollere hvad der nåede applikationen
docker compose config viser den opløste tjenestekonfiguration. docker compose config --environment viser i stedet de værdier, der blev brugt til interpolation.
Sammenlign tjenestemiljøet med applikationsprocessen. En eksisterende container modtager ikke nye værdier, når du redigerer .env; anvend ændringen via den tilsigtede Compose-livscyklus, og regn med afbrydelse af tjenesten.
Hvis variablen mangler, skal du rette tjenestekonfigurationen. Hvis den findes, men anmodningerne stadig går direkte, skal du kontrollere HTTP-klientens proxyunderstøttelse. Miljøinjektion leverer konfigurationen; applikationen skal bruge den.