Пока я перепробовал все, что мог найти в интернете, но, похоже, ничего не помогло.
Это мой файл docker-compose.yml:
version: '3.3'
services:
ivs_fraud:
build:
context: .
args:
GIT_SSH_KEY: ${GIT_SSH_KEY}
image: ivs_fraud:latest
container_name: fraud
depends_on:
- ivsdb
links:
- ivsdb
networks:
- database_network
networks:
database_network:
driver: bridge
И у меня есть ссылка / зависимость от службы ivsdb, которая определена в другом файле docker-compose-dev.yml:
version: '3.3'
services:
ivsdb:
image: mysql
container_name: ivsdb
networks:
- database_network
ports:
- ${DEFAULT_DB_PORT}:3306
restart: always
environment:
MYSQL_DATABASE: ${DEFAULT_DB_NAME}
MYSQL_USER: ${DEFAULT_DB_USER}
MYSQL_PASSWORD: ${DEFAULT_DB_PASS}
MYSQL_ROOT_PASSWORD: ${DEFAULT_DB_ROOT_PASS}
Это мой файл .env (Django читает этот файл .env и создает соединение в соответствии с ним):
DEFAULT_DB_NAME=ivsdb
DEFAULT_DB_HOST=ivsdb
DEFAULT_DB_PORT=10001
DEFAULT_DB_USER=root
DEFAULT_DB_PASS=root
DEFAULT_DB_ROOT_PASS=root
И я продолжаю получать:
(2003, «Не удается подключиться к серверу MySQL через« ivsdb »(111)
отказался ")")
Есть несколько модификаций, которые я попробовал безуспешно:
- Переместить все в один файл docker-compose
- Полностью избавиться от записи "сети"
- Изменить хосты на
ivsdb / 127.0.0.1 / localhost / 0.0.0.0
Вещи, которые работают:
- Служба Djago работает хорошо
- Служба Mysql работает хорошо.
Я могу подключиться к нему с помощью командной строки:
mysql -uroot -proot -P10001 --protocol=tcp
или
mysql -uroot -proot -P10001 -h127.0.0.1 (IP adress enforces tcp protocol)
Похоже, Django испытывает трудности с подключением к контейнеру mysql. Но, судя по «Отказ в соединении» - django может добраться до контейнера mysql.
Чего мне не хватает?