Разработка на Django под Windows с помощью Docker-machine
В этой статье я расскажу как я решил проблему настройки окружения для разработки на 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 в контейнер и выполнять нужные команды оттуда.