Я начинаю разрабатывать приложение с бэкэндом Django, и я хочу сделать это внутри Docker. Мне почти удалось сделать это, но у меня все еще есть проблема. В настоящее время у меня работает два контейнера:
Первый содержит мое приложение django, а полная команда:
python3 manage.py runserver 0.0.0.0:8000
а второй размещает мою базу данных.
Вот мой файл docker-compose.yml:
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD : root
MYSQL_DATABASE : ml_gui
back:
build: ./back/
command: python3 manage.py runserver
ports:
- "8000:8000"
depends_on:
- db
и мои настройки django, касающиеся базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ml_gui',
'USER': 'root',
'PASSWORD': 'root',
'HOST': 'db',
'PORT': '3306',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
},
'TEST': {
'CHARSET': 'utf8',
'COLLATION': 'utf8_general_ci',
},
},
}
Проблема в том, что когда я делаю запросы вне контейнера (я пробовал в своем браузере, с curl и с Postman) на localhost: 8000, у меня нет ответа. Но когда я делаю тот же запрос внутри контейнера с curl, он работает.
Как я могу заставить эти запросы работать вне контейнеров?