Я новичок в devOps, если задаю вопрос неверно прошу сильно не ругаться.
В doker-compose файле есть несколько микросервисов, postgres и kafka.
Проблема: Микросервисы не видят друг друга и кафку, Наружу торчат только сервис server на порте 8080 и postgres на порте 5432. Как пробросить порты и какой урл нужно указывать в @FeignClient в классе клиента?
docker-compose:
version: '3.8'
volumes:
pg_market:
services:
server:
image: 'server:latest'
build:
context: .
container_name: server
depends_on:
- pg_db
ports:
- "8080:8080"
links:
- pg_db:database
recommendation:
image: 'recommendation:latest'
build:
context: .
container_name: recommendation
depends_on:
- pg_db
ports:
- "8082:8082"
links:
- pg_db:database
pg_db:
image: postgres
environment:
- POSTGRES_PASSWORD=1
- POSTGRES_USER=postgres
- POSTGRES_DB=postgres
volumes:
- pg_market:/var/lib/postgresql/data
ports:
- "5432:5432"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_CREATE_TOPICS: recommendation
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
И для примера еще application.yaml:
server:
port: 8082
spring:
datasource:
url: jdbc:postgresql://database/postgres
driver-class-name: org.postgresql.Driver
username: postgres
password: 1
kafka:
bootstrap-servers: localhost:9092
client-id: local
auto-commit-interval: 1000
topic: recomendation
@Component
@FeignClient(name = "market", url = "localhost:8082/api/v1/")
@EnableDiscoveryClient
public interface Client {
}