Passar una variable de proxy de Compose a un contenidor
Feu que les variables de proxy formin part de l'entorn del servei de Compose en lloc de suposar que un fitxer .env del projecte les injecta automàticament.
El fitxer de projecte .env de Compose proporciona valors d'interpolació. Per lliurar un d'aquests valors a un contenidor, referencieu-lo a la configuració del servei.
Per exemple, .env conté el punt de connexió del proxy:
HTTP_PROXY=http://203.0.113.10:8080
El servei l'utilitza tant per a sol·licituds a destinacions HTTP com HTTPS:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
Substituïu l'adreça de documentació i la imatge; trieu un punt de connexió HTTP compatible del vostre servei o de la llista de proxys HTTP. Un proxy HTTP normal pot transportar HTTPS mitjançant CONNECT si admet el túnel sol·licitat.
Una entrada env_file explícita és una altra manera de passar les variables d'un fitxer triat a un servei. El fitxer d'interpolació del projecte no actua com a env_file implícit del contenidor.
Comprovar què ha arribat a l'aplicació
docker compose config mostra la configuració del servei resolta. docker compose config --environment mostra en canvi els valors utilitzats per a la interpolació.
Compareu l'entorn del servei amb el procés de l'aplicació. Un contenidor existent no rep valors nous quan editeu .env; apliqueu el canvi mitjançant el cicle de vida previst de Compose, preveient una interrupció del servei.
Si la variable no hi és, corregiu la configuració del servei. Si hi és però les sol·licituds continuen sent directes, comproveu el suport de proxy del client HTTP. La injecció de l'entorn aporta la configuració; l'aplicació l'ha de consumir.