Запуск отладчика Pycharm с установкой Docker/Django/Notebook?
Я чувствую, что мне не хватает какой-то фундаментальной истины о том, как работает Pycharm, поэтому я хотел бы рассказать о том, как я разрабатываю и что я ищу.
Я запускаю проект SvelteJS с бэкендом Django. Обычно я работаю в контейнерах Docker со следующим compose-файлом:
version: "3.6"
services:
db:
image: mysql:8.3
platform: linux/amd64
environment:
MYSQL_ROOT_PASSWORD: <PASSWORD>
MYSQL_DATABASE: <DATABASE>
ports:
- "3308:3306"
volumes:
- dbdata:/var/lib/mysql
api:
build: ./api
restart: always
image: myproject:latest
env_file:
- api/.env
environment:
- DJANGO_SETTINGS_MODULE=myproject.settings.development
ports:
- "8000:8000"
volumes:
- ./api:/api
command: bash -c "python manage.py migrate && python manage.py runserver_plus --threaded 0.0.0.0:8000"
depends_on:
- db
links:
- db:db
web-svelte:
build: ./svelte-frontend
command: bash -c "npm install && npm run dev -- --host"
ports:
- "5173:5173"
volumes:
- ./svelte-frontend:/svelte-frontend
depends_on:
- "api"
notebook:
build: ./notebook
command: python manage.py shell_plus --notebook
env_file:
- api/.env
environment:
- DJANGO_SETTINGS_MODULE=myproject.settings.development
volumes:
- ./notebook:/api/notebooks
- ./api:/api
ports:
- "8990:8990"
depends_on:
- db
- api
links:
- db:db
volumes:
dbdata:
Поскольку мой проект очень тяжелый, я обычно работаю с набором блокнотов Jupyter, в которых созданы все мои объекты, и запускаю код бэкенда вручную, чтобы протестировать его. Я хочу иметь возможность ставить точки останова в Pycharm, запускать блокнот и останавливать выполнение, чтобы наблюдать за переменными.
Я успешно создал удаленный интерпретатор в Pycharm (я пробовал как Docker, так и Docker-Compose), но я не могу заставить выполнение остановиться. Я предполагаю, что это связано с тем, что в моем контейнере Notebook запущена отдельная версия сервера Django.
Кроме того, я не совсем понимаю. Я должен запускать свои контейнеры с помощью обычных команд docker-compose или через кнопки "run" в Pycharm?
Могу ли я получить тот рабочий процесс, который мне нужен?