Доступ к другому сервису с использованием его URL-адреса внутри сети docker-compose - PullRequest
1 голос
/ 05 марта 2019

3 хостинга, использующих docker-compose.

    version: '3.3'

services:

  service-a:
    container_name: service-a
    network_mode: default
    ports:
      - 8001:8001
      - 8080:8080


  service-b:
    container_name: service-b
    network_mode: default
    ports:
      - 8180:8080 
    links:
      - service-a:srv_a


  service-api:
    container_name: service-api
    environment: 
      - SERVER_URL=http://localhost:8180/myserver
     - 8001:8001
    links:
      - service-b: srv_b     

Однако service-api, являющийся приложением с весенней загрузкой, не может получить доступ к service-b несмотря на ссылку.

Я могу сделать это при использовании браузера.

Что я могу сделать, чтобы выяснить причины отсутствия связи?

Должна ли ссылка каким-либо образом использоваться в переменной server_url?

1 Ответ

1 голос
/ 05 марта 2019

Каждый контейнер Docker имеет свой собственный IP-адрес. С точки зрения контейнера service-api, localhost разрешается на свой собственный IP-адрес.

Docker-compose предоставляет вашим контейнерам возможность разрешать IP-адреса других контейнеров из имен службы docker compose .

Попробуйте:

  service-api:
    environment: 
      - SERVER_URL=http://service-b:8080/myserver

обратите внимание, что вам нужно подключиться к внутреннему порту контейнера (8080), а не к соответствующему порту, опубликованному на хосте докера (8180).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...