В моем файле docker-compose есть две службы.Один для приложения Python django и другой для базы данных MySQL.Когда я использую одну и ту же сеть для обоих контейнеров, приложение django может без каких-либо ошибок соединяться с базой данных, но всякий раз, когда я использую разные сети для них, django не может соединиться с mysql.
Теперь мой вопрос -
Как подключить несколько контейнеров, работающих в разных сетях
Файл Docker Compose:
mysql_database:
image: mysql_db:latest
container_name: mysql_db
command:
mysqld --default-authentication-plugin=mysql_native_password
volumes:
- "/mysql:/var/lib/mysql-files"
ports:
- "3306:3306"
restart: always
stdin_open: true
tty: true
environment:
- MYSQL_HOST=localhost
- MYSQL_PORT=3306
- MYSQL_DATABASE=myDataBase
- MYSQL_USER=myname
- MYSQL_PASSWORD=somepassword
- MYSQL_ROOT_PASSWORD=somepassword
networks:
mysql_network:
ipv4_address: 172.16.0.18
django_app:
image: backend_app:latest
container_name: backend_app
build:
context: .
dockerfile: Dockerfile
tty: true
ports:
- "8000:8000"
volumes:
- ./my_backend_app:/code/
networks:
- backend_network
depends_on:
- mysql_database
links:
- mysql_database
command: >
bash -c "apt update
&& apt install python3-dev
&& source ./venv/bin/activate
&& python manage.py makemigrations
&& python manage.py migrate
&& python manage.py runserver 0.0.0.0:8000"
networks:
backend_network:
driver: bridge
mysql_network:
driver: bridge
ipam:
config:
- subnet: 172.16.0.0/16
volumes:
my_backend_app: