Давайте установим 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
.