У меня есть стек из n сервисов, определенных в docker compose file:
version: "3.7"
services:
db:
...
backend:
image: $IMAGE_DEV_BACKEND
container_name: "backend"
hostname: backend
ports:
- "8888:8080"
depends_on:
- db
networks:
- backend
frontend:
image: $IMAGE_DEV_FRONTEND
container_name: "frontend"
hostname: frontend
depends_on:
- backend
networks:
- backend
- traefik_default
volumes:
data:
networks:
backend:
driver: bridge
external:
name: backend
traefik_default:
driver: bridge
external:
name: traefik_default
Все контейнеры находятся в одной сети.
В приложении frontend spring у меня есть следующая конфигурация пружины:
backend.url=http://backend:8888
, когда приложение front-end пытается подключиться к бэкэнду, которое я получаю
ERROR DefaultFormCommandBean:529 - Error while performing action "datastoreAction": I/O error on POST request for "http://backend:8888/oauth/token": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://backend:8888/oauth/token": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:674)
когда Я использую IP-адрес хоста с демоном docker, все работает безупречно, контейнеры могут общаться друг с другом.
Что я могу сделать, чтобы он работал с именами контейнеров?