django

Разработка на Django под Windows с помощью Docker-machine

  • пятница, 22 апреля 2016 г. в 03:13:03
https://habrahabr.ru/post/282099/
  • Python
  • Django




В этой статье я расскажу как я решил проблему настройки окружения для разработки на Django под Windows.
Используется следующая связка:
1) Docker-machine
2) PyCharm
В Docker-machine:
1) PostgreSQL
2) Data container для PostgreSQL
3) Redis
4) И собственно само приложение на Django.



Сперва нам нужно установить Docker-machine в систему. Для этого скачиваем с официального сайта docs.docker.com/engine/installation/windows. Так же нам понадобится VirtulaBox.
После установки в системе появится Docker Quickstart Terminal. Нужно его запустить и он запустит docker-machine, с которой в дальнейшем и будет проходить всё взаимодействие.
После того как docker-machine будет запущена, через этот терминал мы сможем выполнять docker команды.


Для того, чтобы запустить PostgreSQL и Redis, и для дальнейшего автоматического старта этих контейнеров при запуске docker-machine, создадим файл docker-compose.yml:
postgres:
  restart: always
  image: postgres:latest
  volumes_from:
    - data
  ports:
    - "5432:5432"

data:
  restart: always
  image: postgres:latest
  volumes:
    - /var/lib/postgresql
  command: "true"

redis:
  restart: always
  image: redis:latest
  ports:
    - "6379:6379"


Через терминал нужно перейти в директорию с этим файлом и выполнить команду docker-compose up -d.
После того, как контейнеры запустятся их можно проверить командой docker ps. Эта команда должна показать примерно следующий результат:


Сейчас с компьютера можно например с помощью pgadmin подключиться к PostgreSQL по адресу: 192.168.99.100:5432.

Само приложение Django мы будем запускать при помощи PyCharm. Но для начала в корне созданного проекта создаем файл: Dockerfile с содержимым:
FROM django:onbuild

Так же в корне проекта должен лежать файл requirements.txt, если конечно используются какие-либо внешние зависимости.
Пример файла requirements.txt:
Django==1.9.4
psycopg2==2.6.1
gunicorn==19.4.5
redis==2.10.5
django-celery==3.1.17

В терминале выполняем команду docker build -t container_name path_to_docker_file .
Первый запуск займёт достаточно продолжительное время, так как будет скачан базовый образ и установлены все зависимости из файла requirements.txt.

После того, как образ с приложением будет создан, нужно проект в PyCharm и настроить удалённый интерпретатор. Для настройки нужно зайти в settings -> Project: project_name -> Project interpreter. В строке выбора интерпретатора выбрать пункт add remote.

Далее нужно подтвердить все изменения, если потребуется перезапустить PyCharm, если IDE не будет видеть пакетов.
И можно запускать проект. По умолчанию он будет запущен по адресу: 192.168.99.100:8000

При необходимости можно запускать удаленный manage.py из PyCharm, либо заходить, через docker в контейнер и выполнять нужные команды оттуда.