Docker + PostgreSQL: Name or service not known

Только начинаю работу с Docker и при использовании docker-compose up в контейнере PostgreSQL возникает следующая ошибка:

INFO     | __main__:before_log:21 - Retrying __main__.wait_postgres in 2.0 seconds as it raised [Errno -2] Name or service not known

После нескольких неудачных попыток весь контейнер bot перезагружается, и всё по новой... В чём проблема?

Dockerfile:

FROM python:3.9 as production
LABEL maintainer="Alex Root Junior <[email protected]>" \
      description="Telegram Bot"

ENV PYTHONPATH "${PYTHONPATH}:/app"
ENV PATH "/app/scripts:${PATH}"

EXPOSE 80
WORKDIR /app

COPY Pipfile* /app/
RUN pip install pipenv && \
    pipenv install --system --deploy
ADD . /app/
RUN chmod +x scripts/* && \
    pybabel compile -d locales -D bot

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["run-webhook"]

docker-compose.yml

version: '3.7'

services:
  bot:
    container_name: bot
    build:
      context: .
    env_file:
      - .env
    restart: on-failure
    stop_signal: SIGINT
    depends_on:
      redis:
        condition: service_started
      postgres:
        condition: service_healthy
      api:
        condition: service_started
      nginx:
        condition: service_started

  redis:
    env_file:
      - .env
    container_name: bot-redis
    image: redis:5-alpine
    restart: on-failure
    volumes:
      - redis-data:/data

  postgres:
    env_file:
      - .env
    container_name: bot-postgres
    image: postgres:latest
    volumes:
      - postgres-data:/var/lib/postgresql/data/
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U postgres" ]
      interval: 5s
      timeout: 5s
      retries: 5
    ports:
    - 5432:5432

  api:
    env_file:
      - .env
    image: aiogram/telegram-bot-api:latest
    container_name: bot-api
    restart: always
    volumes:
      - telegram-bot-api-data:/var/lib/telegram-bot-api

  nginx:
    container_name: bot-nginx
    image: nginx:1.19-alpine
    restart: always
    depends_on:
      - api
    volumes:
      - telegram-bot-api-data:/var/lib/telegram-bot-api
      - ./docker/nginx:/etc/nginx/conf.d/
    ports:
      - 8084:8084

volumes:
  redis-data:
  postgres-data:
  telegram-bot-api-data:

.env

COMPOSE_PROJECT_NAME=aiogram_bot
COMPOSE_FILE=docker-compose.yml

TELEGRAM_TOKEN=token
BOT_PUBLIC_PORT=8084
DOMAIN=localhost
WEBHOOK_BASE_PATH=/webhook

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB_FSM=0
REDIS_DB_JOBSTORE=1

POSTGRES_HOST=postgres
POSTGRES_PORT=5423
POSTGRES_PASSWORD=postgres
POSTGRES_USER=postgres
POSTGRES_DB=postgres

TELEGRAM_API_ID=id
TELEGRAM_API_HASH=hash
TELEGRAM_STAT=1
TELEGRAM_LOCAL=1

Спасибо заранее.


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