Ошибка подключения к БД Postgresql

У меня возникает ошибка в приложении запущенном через контейнер, при отправке запроса выдаёт ошибку: failed to connect to user= database=: /tmp/.s.PGSQL.5432 (/tmp): dial error: dial unix /tmp/.s.PGSQL.5432: connect: no such file or directory". Не могу понять в чём дело, кто сталкивался или знает как решить эту проблему?

Мой docker-compose.yml:

version: '3.8'

services:
  postgres:
    image: postgres:16
    container_name: posts_and_comments_postgres
    environment:
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    ports:
      - ${DB_PORT}:${DB_PORT}
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d ${DB_NAME} -U ${DB_USER}"]
      interval: 3s
      timeout: 5s
      retries: 5
    volumes:
      - ./data:/var/lib/postgresql/data
    networks:
      posts_net:
        aliases:
          - database

  app:
    build: ./
    container_name: posts_and_comments
    ports:
      - ${PORT}:${PORT}
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      DATABASE_URL: "postgres://${DB_USER}:${DB_PASSWORD}@database:5432/${DB_NAME}?sslmode=${DB_SSLMODE}"
      IN_MEMORY: "false"
    networks:
      - posts_net


networks:
  posts_net: 

Мой Dockerfile:

FROM golang:1.24-alpine AS builder

WORKDIR /app
RUN apk --no-cache add bash git make # gcc gettext musl-dev

# dependencies
COPY go.mod go.sum ./
RUN go mod download

# build
COPY . .
RUN go build -o ./bin/app cmd/main.go

# run
FROM alpine AS runner

COPY --from=builder /app/bin/app /
COPY docker.env .env
CMD ["/app"]

Пример .env и docker.env файлов:

PORT=8080

DB_USER=user
DB_PASSWORD=password
DB_PORT=5432
DB_NAME=postgres
DB_HOST=database
DB_SSLMODE=disable

DB_URL="postgres://user:password@database:5432/postgres?sslmode=disable"

IN_MEMORY=false


Ответы (1 шт):

Автор решения: Guzya

У Вас app и PG в разных контейнерах, но в строке подключения не указано ни имя контейнера PG ни IP.

→ Ссылка