Эта статья представляет собой краткую инструкцию и посвящена настройке 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 Настройка docker](https://habrastorage.org/getpro/habr/upload_files/1b5/e2f/cc7/1b5e2fcc755fd6441ac61d9bb12d0b8d.png)
-
Далее необходимо выполнить сборку. В корне проекта (где находится docker-compose.yml) выполнить команду в консоли:
docker-compose up
После того как все контейнеры запустились и вы это проверили в докере можно останавливать процесс. Приблизительный результат на картинке (лично моей ситуации). После этого контейнеры остановятся.
![Приблизительный результат Приблизительный результат](https://habrastorage.org/getpro/habr/upload_files/18c/85b/5b8/18c85b5b85a7f316cbfd323e60eb1c09.png)
Можно приступать к настройке непосредственно PyCharm.
![Включить поддержку Django Включить поддержку Django](https://habrastorage.org/getpro/habr/upload_files/16f/287/d89/16f287d896f98e324b79db91bda61b1b.png)
![Использование Docker v2 Использование Docker v2](https://habrastorage.org/getpro/habr/upload_files/083/0b1/4a5/0830b14a5eb93e0a6db7b2a281b1acaf.png)
Создаём сервер django. Выбираем desktop в зависимости от системы
![Настраиваем сервер Настраиваем сервер](https://habrastorage.org/getpro/habr/upload_files/f95/a31/323/f95a31323860139edb0955807a09c9ef.png)
![Запускаем сервер Запускаем сервер](https://habrastorage.org/getpro/habr/upload_files/266/0ac/b29/2660acb29e051bbff377ba081d4c0859.png)
Теперь необходимо настроить удалённый интерпретатор. Добавляем новый docker-compose. В качестве сервиса выбираем созданный нами web.
![Удалённый интерпретатор docker-compose Удалённый интерпретатор docker-compose](https://habrastorage.org/getpro/habr/upload_files/937/a5d/cf2/937a5dcf25b3ae7e49b5ac1038ae687b.png)
![Указываем сервис Указываем сервис](https://habrastorage.org/getpro/habr/upload_files/f81/a7d/670/f81a7d6703ff01347c3df3ec985ec8fd.png)
![Результат компиляции Результат компиляции](https://habrastorage.org/getpro/habr/upload_files/c5c/8f8/e86/c5c8f8e86fb6469fd587edac6842b9b2.png)
![Системный интерпретатор Системный интерпретатор](https://habrastorage.org/getpro/habr/upload_files/327/075/528/32707552893c67cc774c04ac38e61b73.png)
Теперь после успешного создания интерпретатора отобразятся все библиотеки установленные в контейнере для Python. Что бы интерпретатор вступил в силу необходимо время.
![Удаленный интерпретатор Удаленный интерпретатор](https://habrastorage.org/getpro/habr/upload_files/094/030/690/09403069034867a8aebab087a7adfc10.png)
Последним шагом является настройка конфигурационного файла. Конфигурацию выбираем Django Server. В качестве хоста указать нули: 0.0.0.0, а в качестве порта один из тех что мы указали для контейнера web, в моем случае я выбрал 8020. Так же необходимо указать созданный удалённый интерпретатор.
![Создание конфигурации Создание конфигурации](https://habrastorage.org/getpro/habr/upload_files/4ff/4b6/e29/4ff4b6e2994bcd25f9037342ca930d32.png)
![Параметры конфигурации Параметры конфигурации](https://habrastorage.org/getpro/habr/upload_files/387/e98/47a/387e9847a2261a42faf91940666d1c08.png)
Вот и всё. По идее этого достаточно что бы запустить Django сервер для отладки в PyCharm как обычный скрипт python. Не забудьте что при заходе на страницу локального сайта необходимо указывать тот порт который указали при настройке конфигурации т.е. 127.0.0.1:8020.
Когда проходил эти шаги пользовался официальной документацией PyCharm, так же мне очень помогло это Видео. Спасибо за внимание.