Ошибка, с которой вы столкнулись, указывает на то, что контейнер `discord-bot` не может установить соединение с сервисом `api`, работающим на порту 8080. Причины могут быть различными, но основной момент в том, что вы пытаетесь обратиться к `localhost` из контейнера `discord-bot`. Однако `localhost` в этом случае указывает на сам контейнер `discord-bot`, а не на контейнер `api`.
Вот шаги, которые вы можете предпринять для устранения этой ошибки:
1. **Используйте имя сервиса вместо `localhost`**: Вместо того чтобы использовать `localhost` в коде вашего `discord-bot`, используйте имя сервиса `api`. Это имя будет доступно как DNS-имя внутри Docker-сети.
Например, если ваш код выглядит примерно так:
```python
response = requests.get("http://localhost:8080/setup")
```
измените его на:
```python
response = requests.get("http://api:8080/setup")
```
2. **Проверьте, что сервис `api` запущен**: Убедитесь, что сервис `api` действительно запустился и прослушивает 8080 порт. Это можно сделать, например, с помощью команды `docker-compose logs api` для просмотра логов сервиса.
3. **Проверьте доступность порта**: Убедитесь, что приложение в контейнере `api` правильно настроено на прослушивание всех интерфейсов, а не только `localhost`. Если ваше приложение запущено на Flask, убедитесь, что оно запускается с указанием `host='0.0.0.0'`. Например:
```python
app.run(host='0.0.0.0', port=8080)
```
4. **Проверка сетевого конфигурации**: Ваши сервисы используют одну и ту же сеть `remaxmdcrm_remaxmd-network`, что правильно, так что они должны видеть друг друга по именам.
5. **Перезапустите контейнеры**: Иногда возможны временные проблемы, которые можно решить, просто перезапустив контейнеры с помощью команд `docker-compose down` и `docker-compose up --build`.
После выполнения этих шагов ваша проблема с соединением должна быть устранена. Если ошибка сохранится, проверьте логи обоих контейнеров для выявления дополнительных подсказок.