6
0
mirror of https://github.com/ChristianLight/tutor.git synced 2024-12-12 14:17:46 +00:00
tutor/Makefile
Régis Behmo 43a97e5fe3 Add xqueue services
Xqueue containers consist of two services: a gunicorn service, that
receives requests from LMS/CMS, and a worker service. I guess the worker
service receives orders from the gunicorn service, through rabbitmq.
(but I'm less than certain about that).

While adding xqueue containers, we refactored the way mysql databases
are created, and how the root password is loaded. Also, we silenced some
options from the configure script.
2018-06-04 23:41:22 -04:00

112 lines
3.4 KiB
Makefile

.PHONY: all android configure build update migrate assets up daemon
USERID ?= $$(id -u)
EDX_PLATFORM_SETTINGS ?= universal.production
DOCKER_COMPOSE_RUN = docker-compose run --rm
DOCKER_COMPOSE_RUN_OPENEDX = $(DOCKER_COMPOSE_RUN) -e USERID=$(USERID) -e SETTINGS=$(EDX_PLATFORM_SETTINGS)
ifneq ($(EDX_PLATFORM_PATH),)
DOCKER_COMPOSE_RUN_OPENEDX += --volume="$(EDX_PLATFORM_PATH):/openedx/edx-platform"
endif
DOCKER_COMPOSE_RUN_LMS = $(DOCKER_COMPOSE_RUN_OPENEDX) -p 8000:8000 lms
DOCKER_COMPOSE_RUN_CMS = $(DOCKER_COMPOSE_RUN_OPENEDX) -p 8001:8001 cms
all: configure update migrate assets daemon
##################### Bootstrapping
configure:
./configure
update:
docker-compose pull
provision:
$(DOCKER_COMPOSE_RUN_OPENEDX) lms bash /openedx/config/provision.sh
migrate-openedx:
$(DOCKER_COMPOSE_RUN_OPENEDX) lms bash -c "wait-for-greenlight.sh && ./manage.py lms migrate"
$(DOCKER_COMPOSE_RUN_OPENEDX) cms bash -c "wait-for-greenlight.sh && ./manage.py cms migrate"
migrate-forum:
$(DOCKER_COMPOSE_RUN) forum bash -c "bundle exec rake search:initialize && \
bundle exec rake search:rebuild_index"
migrate-xqueue:
$(DOCKER_COMPOSE_RUN) xqueue bash -c "./manage.py migrate"
migrate: provision migrate-openedx migrate-forum migrate-xqueue
assets:
$(DOCKER_COMPOSE_RUN_OPENEDX) lms paver update_assets lms --settings=$(EDX_PLATFORM_SETTINGS)
$(DOCKER_COMPOSE_RUN_OPENEDX) cms paver update_assets cms --settings=$(EDX_PLATFORM_SETTINGS)
##################### Running
up:
docker-compose up
daemon:
docker-compose up -d && \
echo "Daemon is up and running"
stop:
docker-compose stop
##################### Extra
import-demo-course:
$(DOCKER_COMPOSE_RUN_OPENEDX) cms /bin/bash -c "git clone https://github.com/edx/edx-demo-course ../edx-demo-course && git -C ../edx-demo-course checkout open-release/ginkgo.master && python ./manage.py cms import ../data ../edx-demo-course"
create-staff-user:
$(DOCKER_COMPOSE_RUN_OPENEDX) lms /bin/bash -c "./manage.py lms manage_user --superuser --staff ${USERNAME} ${EMAIL} && ./manage.py lms changepassword ${USERNAME}"
##################### Development
lms:
$(DOCKER_COMPOSE_RUN_LMS) bash
cms:
$(DOCKER_COMPOSE_RUN_CMS) bash
lms-shell:
$(DOCKER_COMPOSE_RUN_OPENEDX) lms ./manage.py lms shell
cms-shell:
$(DOCKER_COMPOSE_RUN_OPENEDX) cms ./manage.py cms shell
#################### Android app
android:
docker-compose -f docker-compose-android.yml run --rm android
@echo "Your APK file is ready: ./data/android/edx-prod-debuggable-2.14.0.apk"
android-release:
# Note that this requires that you edit ./config/android/gradle.properties
docker-compose -f docker-compose-android.yml run --rm android ./gradlew assembleProdRelease
android-build:
docker build -t regis/openedx-android:latest android/
android-push:
docker push regis/openedx-android:latest
android-dockerhub: android-build android-push
#################### Deploying to docker hub
build:
# We need to build with docker, as long as docker-compose cannot push to dockerhub
docker build -t regis/openedx:latest -t regis/openedx:ginkgo openedx/
docker build -t regis/openedx-forum:latest -t regis/openedx-forum:ginkgo forum/
docker build -t regis/openedx-xqueue:latest -t regis/openedx-xqueue:ginkgo xqueue/
push:
docker push regis/openedx:ginkgo
docker push regis/openedx:latest
docker push regis/openedx-forum:ginkgo
docker push regis/openedx-forum:latest
docker push regis/openedx-xqueue:ginkgo
docker push regis/openedx-xqueue:latest
dockerhub: build push