Passare una variabile proxy di Compose a un container
Rendete le variabili proxy parte dell'ambiente del servizio Compose invece di presumere che un file .env del progetto le inietti automaticamente.
Il file di progetto .env di Compose fornisce i valori di interpolazione. Per passare uno di questi valori a un container, referenziatelo nella configurazione del servizio.
Ad esempio, .env contiene l'endpoint del proxy:
HTTP_PROXY=http://203.0.113.10:8080
Il servizio lo usa sia per le richieste verso destinazioni HTTP sia HTTPS:
services:
app:
image: your-image
environment:
HTTP_PROXY: "${HTTP_PROXY}"
HTTPS_PROXY: "${HTTP_PROXY}"
Sostituite l'indirizzo di documentazione e l'immagine; scegliete un endpoint HTTP compatibile dal vostro servizio o dalla lista di proxy HTTP. Un normale proxy HTTP può trasportare HTTPS tramite CONNECT se supporta il tunnel richiesto.
Una voce env_file esplicita è un altro modo per passare le variabili di un file scelto a un servizio. Il file di interpolazione del progetto non funge da env_file implicito del container.
Verificare cosa è arrivato all'applicazione
docker compose config mostra la configurazione del servizio risolta. docker compose config --environment mostra invece i valori usati per l'interpolazione.
Confrontate l'ambiente del servizio con il processo dell'applicazione. Un container esistente non riceve nuovi valori quando modificate .env; applicate la modifica tramite il ciclo di vita Compose previsto, prevedendo un'interruzione del servizio.
Se la variabile manca, correggete la configurazione del servizio. Se è presente ma le richieste restano dirette, verificate il supporto proxy del client HTTP. L'iniezione dell'ambiente fornisce la configurazione; l'applicazione deve utilizzarla.