У меня есть приложение на основе микросервиса.Я использую docker, docker-compose и traefik для обнаружения сервисов.
В данный момент у меня есть 2 микросервиса:
- серверное приложение: запущено на node-app.localhost: 8000
- поисковый микросервис, работающий на search-microservice.localhost: 8002
Проблема: я не могу сделать запрос от одного микросервиса к другому.Вот моя конфигурация docker compose:
# all variables used in this file are defined in the .env file
version: "2.2"
services:
node-app-0:
container_name: node-app
restart: always
build: ./backend/server
links:
- ${DB_HOST}
depends_on:
- ${DB_HOST}
ports:
- "8000:3000"
labels:
- "traefik.port=80"
- "traefik.frontend.rule=Host:node-app.localhost"
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker # Enables the web UI and tells Traefik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
volumes:
- /var/run/docker.sock:/var/run/docker.sock
search-microservice:
container_name: ${CONTAINER_NAME_SEARCH}
restart: always
build: ./backend/search-service
links:
- ${DB_HOST}
depends_on:
- ${DB_HOST}
ports:
- "8002:3000"
labels:
- "traefik.port=80"
- "traefik.frontend.rule=Host:search-microservice.localhost"
volumes:
node-ts-app-volume:
external: true
И приложение-узел, и микросервис поиска предоставляют порт 3000.
Почему я не могу позвонить http://search -microservice.localhost: 8002 из приложения узла?хотя вызов из браузера работает.