Настройки прокси-сервера Docker не влияют на поведение во время выполнения - PullRequest
1 голос
/ 09 апреля 2019

Настройка конфигурации прокси во время выполнения для док-контейнеров не работает

Я просто пытаюсь заставить http-трафик из моих контейнеров Docker через прокси, который сам является локальным контейнером

Похоже, эта функция является частью документации Docker:

https://docs.docker.com/network/proxy/

Я скопировал простое приложение-узел, которое вызывает внешний веб-сайт. Я использовал код здесь: https://www.twilio.com/blog/2017/08/http-requests-in-node-js.html

Этот сервер Node.js прослушивает порт 8080

Затем я создал контейнер vertx для прослушивания через порт 8081 прокси-трафика, куда он должен идти.

В Dockerfile для сервера Node.js я поместил запись ENV для приведения трафика https

FROM xgeoff/node-web-app

ENV HTTPS_PROXY "127.0.0.1:8081"

CMD [ "npm", "start" ]

Но это не работает. Прокси-сервер не получает трафик, запрос просто идет прямо на внешний сайт. Я снова проверил это, изменив порт прокси на 8082, где ничего не слушалось, но не было сгенерировано никакой ошибки. И снова трафик из контейнера Node направляется прямо на внешний веб-сайт.

Я попробовал другую методологию, которая заключалась в указании порта прокси при создании образа, например:

docker build --build-arg https_proxy=127.0.0.1:8082 -t <image_name> .

И все равно это не сработало. Так что я немного сбит с толку.

Кстати, я использую docker compose для запуска двух сервисов. Вот файл docker-compose.yml:

version: '3'

services:
    node:
        image: 'node-web-app'
        ports:
            - '8080:8080'
    ambassador:
        image: 'vertx-groovy-proxyserver'
...