null

Установка окружения для разработки edX juniper

Давайте установим juniper devstack прямо на хостовую ОС, а не в виртуалку. Так ведь удобнее, правда? :)

Подготовка

NOTE: проверено на Arch Linux и Ubuntu 18.04.

Перед тем как начать, стоит убедиться что у нас установлены:
- git
- make
- docker - установка на ubuntu 18.04 тык
- docker-compose - установка на ubuntu 18.04 тык

Установка

Создадим корневую директорию, в которой будут находиться наши git репозитории:

$ mkdir ~/juniper-devstack && cd ~/juniper-devstack

Далее склонируем репозиторий devstack и переключимся на тэг juniper.master:

$ git clone https://github.com/edx/devstack && cd devstack
$ git checkout open-release/juniper.master

В следующей команде не забыт префикс open-release/:

$ export OPENEDX_RELEASE=juniper.master
$ make dev.checkout

Склонируем репозитории сервисов Open edX в корневую директорию:

$ make dev.clone

Подводный камень: на dockerhub отсутствуют образы с некоторыми тэгами. В том числе, с нашим.
Уберем ссылки на отсутствующий образ в docker registry:

$ sed -i 's;image: edxops/registrar:${OPENEDX_RELEASE:-latest};image: edxops/registrar:latest;g' docker-compose.yml

Убедитесь, что у Вас настроен доступ к github.com по ssh. Если Вы не хотите использовать ssh, то выполните:

$ sed -i 's/^dev.provision: check-memory dev.clone.ssh/dev.provision: check-memory/g' Makefile

Сконфигурируем все сервисы и БД:

$ make dev.provision

Это займет примерно 25 минут, можно попить чай с коллегами.

Использование

Запустить все контейнеры:

$ make dev.up

Остановить все контейнеры:

$ make stop

Запустите make без аргументов, чтобы узнать подробнее о доступных target.

Теперь можно работать с репозиториями, которые находятся в ~/juniper-devstack. Многие изменения будут автоматически подхватываться контейнером, т.к. приложения запущены как ./manage.py runserver ..., а не с помощью gunicorn.