Файл .env проекта Compose задаёт значения интерполяции. Чтобы передать одно из этих значений контейнеру, укажите его в конфигурации сервиса.

Например, .env содержит конечную точку прокси:

HTTP_PROXY=http://203.0.113.10:8080

Сервис использует её и для HTTP-, и для HTTPS-запросов:

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

Замените адрес из документации и образ; выберите совместимую конечную точку HTTP из своего сервиса или из списка HTTP-прокси. Обычный HTTP-прокси может передавать HTTPS через CONNECT, если он поддерживает требуемый туннель.

Явная запись env_file — ещё один способ передать переменные выбранного файла сервису. Файл интерполяции проекта не действует как неявный env_file контейнера.

Проверка того, что дошло до приложения

docker compose config показывает разрешённую конфигурацию сервиса. А docker compose config --environment показывает значения, использованные для интерполяции.

Сравните окружение сервиса с процессом приложения. Существующий контейнер не получает новые значения при изменении .env; применяйте изменение через предусмотренный жизненный цикл Compose, допуская перерыв в работе сервиса.

Если переменной нет, исправьте конфигурацию сервиса. Если она есть, но запросы всё равно идут напрямую, проверьте поддержку прокси в HTTP-клиенте. Внедрение через окружение даёт конфигурацию; приложение должно её использовать.

Похожие статьи