Настройка конфигурации прокси во время выполнения для док-контейнеров не работает
Я просто пытаюсь заставить 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'