Эта статья представляет собой краткую инструкцию и посвящена настройке IDE для возможности запуска и отладки Django сервера. Статья нацелена на людей которые столкнулись с подобной проблемой и хотелось бы поделиться опытом, так как сам прошёл эти этапы и танцы с бубном.

Подразумевается что у вас уже имеется настроенный и установленный контейнер с развёрнутым сервером Django и вы бы хотели перенести запуск и отладку в IDE PyCharm (только в профессиональной версии).

Для начала необходимо настроить файл docker-compose.yml. Предположим у вас имеется основной контейнер который вы запускаете для отладки, у меня этот контейнер имеет название app, необходимо его продублировать, изменив название (например на web или web_pycharm) и порт отличный от основного, что бы они не конфликтовали. Это необходимо для того что бы оставалась возможность ручного запуска контейнера, так как PyCharm вносит свои изменения в предоставляемый контейнер. То есть для ручного запуска или для взаимодействия с файловой системой и тому подобное всё так же можно зайти в основной контейнер.

  1. Изменяем 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
  1. В настройках Docker указать использование docker v2

Настройка docker
Настройка docker
  1. Далее необходимо выполнить сборку. В корне проекта (где находится docker-compose.yml) выполнить команду в консоли:

    docker-compose up

После того как все контейнеры запустились и вы это проверили в докере можно останавливать процесс. Приблизительный результат на картинке (лично моей ситуации). После этого контейнеры остановятся.

Приблизительный результат
Приблизительный результат
  1. Можно приступать к настройке непосредственно PyCharm.

Включить поддержку Django
Включить поддержку Django
Использование Docker v2
Использование Docker v2
  1. Создаём сервер django. Выбираем desktop в зависимости от системы

Настраиваем сервер
Настраиваем сервер
Запускаем сервер
Запускаем сервер
  1. Теперь необходимо настроить удалённый интерпретатор. Добавляем новый docker-compose. В качестве сервиса выбираем созданный нами web.

Удалённый интерпретатор docker-compose
Удалённый интерпретатор docker-compose
Указываем сервис
Указываем сервис
Результат компиляции
Результат компиляции
Системный интерпретатор
Системный интерпретатор

Теперь после успешного создания интерпретатора отобразятся все библиотеки установленные в контейнере для Python. Что бы интерпретатор вступил в силу необходимо время.

Удаленный интерпретатор
Удаленный интерпретатор
  1. Последним шагом является настройка конфигурационного файла. Конфигурацию выбираем Django Server. В качестве хоста указать нули: 0.0.0.0, а в качестве порта один из тех что мы указали для контейнера web, в моем случае я выбрал 8020. Так же необходимо указать созданный удалённый интерпретатор.

Создание конфигурации
Создание конфигурации
Параметры конфигурации
Параметры конфигурации

Вот и всё. По идее этого достаточно что бы запустить Django сервер для отладки в PyCharm как обычный скрипт python. Не забудьте что при заходе на страницу локального сайта необходимо указывать тот порт который указали при настройке конфигурации т.е. 127.0.0.1:8020.

Когда проходил эти шаги пользовался официальной документацией PyCharm, так же мне очень помогло это Видео. Спасибо за внимание.

Комментарии (0)