Server=localhost
Чей локалхост? У каждого контейнера он свой. Тогда какой указывать?
Оптимально - по имени.
https://docs.docker.com/compose/networking/
Reference containers by name, not IP, whenever possible. Otherwise you’ll need to constantly update the IP address you use.
Port=6002
Чья
туфля порт? Внутри
докер-сети (Вы же указали: networks>postgres-network) контейнеры общаются по внутренним портам (рекомендуется).
Если резюмировать, то будет примерно так (поправить местами при необходимости):
"Postgres": "Server=localhost; Port=6002; Database=post; User ID=postgres; Password=passwd; Pooling=true"
"Postgres": "Server=postgres_db; Port=5432; Database=post; User ID=postgres; Password=passwd; Pooling=true"
docker-compose.yml:
version: '3.8'
networks:
postgres-network:
driver: bridge
services:
gchain.posts.api:
image: gchain.posts.api
build:
context: .
dockerfile: GChain.Posts.Api/Dockerfile
ports:
- "80:8080"
networks:
- postgres-network
depends_on:
- postgres_db
postgres_db:
container_name: postgres_post
image: postgres:latest
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-passwd}
POSTGRES_DB: post
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "6002:5432"
networks:
- postgres-network
restart: unless-stopped
volumes:
postgres-data: