Эта статья представляет собой краткую инструкцию и посвящена настройке IDE для возможности запуска и отладки Django сервера. Статья нацелена на людей которые столкнулись с подобной проблемой и хотелось бы поделиться опытом, так как сам прошёл эти этапы и танцы с бубном.
Подразумевается что у вас уже имеется настроенный и установленный контейнер с развёрнутым сервером Django и вы бы хотели перенести запуск и отладку в IDE PyCharm (только в профессиональной версии).
Для начала необходимо настроить файл docker-compose.yml. Предположим у вас имеется основной контейнер который вы запускаете для отладки, у меня этот контейнер имеет название app, необходимо его продублировать, изменив название (например на web или web_pycharm) и порт отличный от основного, что бы они не конфликтовали. Это необходимо для того что бы оставалась возможность ручного запуска контейнера, так как PyCharm вносит свои изменения в предоставляемый контейнер. То есть для ручного запуска или для взаимодействия с файловой системой и тому подобное всё так же можно зайти в основной контейнер.
Изменяем docker-compose.yml
version: '3.4'
services:
db:
# описание контейнера
lessc:
# описание контейнера
nodejs:
# описание контейнера
app:
# Это основной конттейнер
# Порты указаны на работу в пределах 8000-8010
ports:
- '8000-8010:8000-8010'
web:
# новый контейнер, необходимо продублировать основной контейнер
# (в моём случае это app)
# изменяем порты
ports:
- '8011-8020:8011-8020'
# добавляем в зависимости остальные контейнеры
depends_on:
- app
- db
- redis
- nodejs
- lessc
В настройках Docker указать использование docker v2
-
Далее необходимо выполнить сборку. В корне проекта (где находится docker-compose.yml) выполнить команду в консоли:
docker-compose up
После того как все контейнеры запустились и вы это проверили в докере можно останавливать процесс. Приблизительный результат на картинке (лично моей ситуации). После этого контейнеры остановятся.
Можно приступать к настройке непосредственно PyCharm.
Создаём сервер django. Выбираем desktop в зависимости от системы
Теперь необходимо настроить удалённый интерпретатор. Добавляем новый docker-compose. В качестве сервиса выбираем созданный нами web.
Теперь после успешного создания интерпретатора отобразятся все библиотеки установленные в контейнере для Python. Что бы интерпретатор вступил в силу необходимо время.
Последним шагом является настройка конфигурационного файла. Конфигурацию выбираем Django Server. В качестве хоста указать нули: 0.0.0.0, а в качестве порта один из тех что мы указали для контейнера web, в моем случае я выбрал 8020. Так же необходимо указать созданный удалённый интерпретатор.
Вот и всё. По идее этого достаточно что бы запустить Django сервер для отладки в PyCharm как обычный скрипт python. Не забудьте что при заходе на страницу локального сайта необходимо указывать тот порт который указали при настройке конфигурации т.е. 127.0.0.1:8020.
Когда проходил эти шаги пользовался официальной документацией PyCharm, так же мне очень помогло это Видео. Спасибо за внимание.