Pasar una variable de proxy de Compose a un contenedor
Haga que las variables de proxy formen parte del entorno del servicio de Compose en lugar de suponer que un archivo .env del proyecto las inyecta automáticamente.
El archivo de proyecto .env de Compose proporciona valores de interpolación. Para entregar uno de esos valores a un contenedor, haga referencia a él en la configuración del servicio.
Por ejemplo, .env contiene el punto de conexión del proxy:
HTTP_PROXY=http://203.0.113.10:8080
El servicio lo usa tanto para solicitudes a destinos HTTP como HTTPS:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
Sustituya la dirección de documentación y la imagen; elija un punto de conexión HTTP compatible de su servicio o de la lista de proxies HTTP. Un proxy HTTP normal puede transportar HTTPS mediante CONNECT si admite el túnel solicitado.
Una entrada env_file explícita es otra forma de pasar las variables de un archivo elegido a un servicio. El archivo de interpolación del proyecto no actúa como env_file implícito del contenedor.
Comprobar qué llegó a la aplicación
docker compose config muestra la configuración del servicio resuelta. docker compose config --environment muestra en cambio los valores usados para la interpolación.
Compare el entorno del servicio con el proceso de la aplicación. Un contenedor existente no recibe valores nuevos cuando edita .env; aplique el cambio mediante el ciclo de vida previsto de Compose, previendo una interrupción del servicio.
Si la variable no está, corrija la configuración del servicio. Si está pero las solicitudes siguen siendo directas, compruebe la compatibilidad con proxy del cliente HTTP. La inyección del entorno aporta la configuración; la aplicación debe consumirla.