Die Projektdatei .env von Compose liefert Werte für die Interpolation. Um einen dieser Werte an einen Container weiterzugeben, referenzieren Sie ihn in der Dienstkonfiguration.

Zum Beispiel enthält .env den Proxy-Endpunkt:

HTTP_PROXY=http://203.0.113.10:8080

Der Dienst verwendet ihn für Anfragen an HTTP- und HTTPS-Ziele:

services:
  app:
    image: your-image
    environment:
      HTTP_PROXY: "${HTTP_PROXY}"
      HTTPS_PROXY: "${HTTP_PROXY}"

Ersetzen Sie die Dokumentationsadresse und das Image; wählen Sie einen kompatiblen HTTP-Endpunkt aus Ihrem Dienst oder der Liste der HTTP-Proxys. Ein gewöhnlicher HTTP-Proxy kann HTTPS über CONNECT übertragen, wenn er den angeforderten Tunnel unterstützt.

Ein expliziter env_file-Eintrag ist eine weitere Möglichkeit, die Variablen einer gewählten Datei an einen Dienst zu übergeben. Die Interpolationsdatei des Projekts wirkt nicht als impliziter env_file des Containers.

Prüfen, was bei der Anwendung angekommen ist

docker compose config zeigt die aufgelöste Dienstkonfiguration. docker compose config --environment zeigt stattdessen die für die Interpolation verwendeten Werte.

Vergleichen Sie die Dienstumgebung mit dem Anwendungsprozess. Ein bestehender Container erhält keine neuen Werte, wenn Sie .env bearbeiten; wenden Sie die Änderung über den vorgesehenen Compose-Lebenszyklus an und rechnen Sie mit einer Dienstunterbrechung.

Wenn die Variable fehlt, korrigieren Sie die Dienstkonfiguration. Wenn sie vorhanden ist, Anfragen aber weiterhin direkt erfolgen, prüfen Sie die Proxy-Unterstützung des HTTP-Clients. Die Umgebungsinjektion liefert die Konfiguration; die Anwendung muss sie nutzen.

Ähnliche Artikel