Запрос GET на Docker Traefik API - блокировка по правилам CORS

У меня проблемы с поиском доступа к моему Traefik API с помощью запроса GET из другого контейнера докеров.

Контекст

У меня есть 2 контейнера докеров, один из которых запускает экземпляр traefik:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 80:80 -l traefik.frontend.rule=Host:my.server -l traefik.port=80 --name traefik traefik --docker --api

Другой контейнер запускает довольно простое веб-приложение React. Я пытаюсь подключиться к Traefik API с помощью XMLHttpRequest.

Мой запрос заблокирован политикой Traefik CORS. Есть идеи, как настроить Traefik для включения Access-Control-Allow-Origin?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
6
0
4 988
1

Ответы 1

Единственный способ сделать это - подключить заголовок Access-Control-Allow-Origin как метку в контейнере Træfik.

traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*

И если вам нужно добавить больше заголовков, таких как Access-Control-Allow-Method, вы должны объединить их двойными полосами (||) в том же правиле.

traefik.frontend.headers.customResponseHeaders=Hdr1:val1,val2||Hdr2:val3

Итак, ваша строка докер запустить будет следующей.

docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
-p 8080:8080 -p 80:80 \
-l traefik.frontend.rule=Host:my.server \
-l traefik.port=80 \
-l "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*" \
--name traefik traefik --docker --api

Дэвид, какую версию Traefik вы используете? Изменился синтаксис правил. Мне нужно обновить этот пост.

Danilo Gómez 19.08.2020 00:38

Я использую Traefik 2.2, но я перенастроил весь стек, и теперь все работает

David 19.08.2020 23:38

Другие вопросы по теме