Docker: обращение одного image к другому в одном контейнере

Рейтинг: 1Ответов: 1Опубликовано: 11.04.2023

Создал контейнер, содержащий API и telegram бота. Принцип: бот обращается к api и выводит полученные данные. После запуска контейнера и отправке боту команды выводит ошибку:

aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host localhost:6200 ssl:default [Connect call failed ('127.0.0.1', 6200)]

Вот docker-compose:

version: "1"   
services:  
  postgres:  
    image: postgres  
    environment:  
      POSTGRES_USER: postgres  
      POSTGRES_PASSWORD: 1  
      POSTGRES_DB: postgres  
    volumes:  
      - postgres_data:/var/lib/postgresql/data    
  vepr_backend:  
    build: ./vepr_backend  
    ports:  
      - 6200:6200  
    environment:  
      DB_USERNAME: postgres  
      DB_PASSWORD: 1  
      DB_HOST: postgres  
      DB_PORT: 5432  
      DB_NAME: postgres  
      PORT: 6200  
    depends_on:  
      - postgres  
  vepr-bot:  
    depends_on:  
      - vepr_backend  
    build: ./vepr-bot  
volumes:  
  postgres_data:

Ответы

▲ 4Принят

Используйте имя контейнера в качестве имени хоста: vepr_backend:6200

localhost - это контейнер, в котором отправляется запрос в backend. Если это контейнер vepr-bot, то он пытается отправить запрос на vepr-bot:6200