У меня есть два docker экземпляра, один для API и один для БД проекта. Я смог запустить оба без проблем, но сегодня я не смог. Экземпляр БД создается без проблем, но API не может связаться с ним из-за следующей ошибки:
django.db.utils.OperationalError: (1130, "Host '172.x.x.x' is not allowed to connect to this MySQL server")
Некоторые поиски привели меня к проверке хоста для пользователя root, что дает мне :
SELECT host from mysql.user where User='root';
+-----------+
| host |
+-----------+
| localhost |
+-----------+
1 row in set (0.00 sec)
Ниже docker-compose.yml
:
version: "3"
services:
db:
container_name: db
image: mysql:5.7
ports:
- "3336:3306"
environment:
MYSQL_ROOT_PASSWORD: ***
MYSQL_USER: ***
MYSQL_PASSWORD: ***
MYSQL_DATABASE: ***
restart: always
command:
[
"mysqld",
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_unicode_ci",
]
api:
container_name: api
build:
context: ../../
dockerfile: ./etc/docker/Dockerfile
ports:
- "8000:8000"
depends_on:
- db
restart: always
Итак, у меня есть несколько вопросов:
Любая идея, почему API IP-адрес экземпляра изменился? Я предполагаю, что он изменился, поскольку со вчерашнего дня он мог без проблем подключаться.
Есть ли способ решить эту проблему с помощью docker -compose / Makefile? Я смог ввести sh в экземпляр БД и изменить хост вручную, но это, очевидно, не является устойчивым.
Есть ли способ изменить IP экземпляра API на localhost
?
Заранее спасибо.