Почему Docker создать ссылку не работает в приложении React? - PullRequest
0 голосов
/ 11 июля 2020

У меня два приложения в виде контейнера docker. ReactJS в качестве внешнего интерфейса и приложение Springboot как серверное.

Когда я запускаю оба приложения на windows docker на панели инструментов рабочего стола, я не могу войти в систему из внешнего интерфейса из-за недоступности внутреннего api. Все мои контейнеры используют сеть по умолчанию.

в приложении реакции. Я использую эту ссылку для доступа к бэкэнду. API_URL: 'http://backend:8080/api/'

docker -compose.yml здесь.

backend:
container_name: backend
image: backend:2.0.1b4
command: sh -c "/wait && catalina.sh run"
ports:
  - 8080:8080
environment:
  - ROTATOR_CLIENT=agent_url:9091
  - MAST_CLIENT=agent_url:9092
  - working-environment=RLAS
  - DB_URL=jdbc:postgresql://postgres_url:5432/postgres?schema=public
  - DB_USER=postgres
  - DB_PASSWORD=postgres
  - WAIT_HOSTS=postgres_url:5432
  - WAIT_SLEEP_INTERVAL=5
external_links:
  - database:postgres_url
  - agent:agent_url
restart: always


frontend:
    container_name: frontend
    image: frontend:2.0.1b4
    ports:
      - 3000:3000
    environment:
      - base_url=backend_url:9090
    external_links:
      - backend:backend_url
    restart: always

ошибка в том, что: введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Как вы уже догадались, вам придется использовать http://localhost:8080 вместо http://backend:8080 в качестве URL.

Это связано с тем, что загрузка данных на стороне клиента с JavaScript происходит в вашем браузер, а не внутри контейнера. Следовательно, это происходит за пределами сети docker.

0 голосов
/ 11 июля 2020

Я только что изменил свой API_URL: 'http: // backend : 8080 / api /' на API_URL: 'http: // localhost : 8080 / api /'

теперь нормально работает! Не знаю, как это работает!

...