.PHONY:clone devstack.provision devstack.reset devstack.start devstack.stop help requirements update-images validate
.DEFAULT_GOAL:=help
backup-volumes:## Backup all data volumes to the local host
docker run --rm--volumes-from edx.devstack.mysql -v$$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mysql.tar.gz /var/lib/mysql
docker run --rm--volumes-from edx.devstack.mongo -v$$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mongo.tar.gz /data/db
docker run --rm--volumes-from edx.devstack.elasticsearch -v$$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/elasticsearch.tar.gz /usr/share/elasticsearch/data
restore-volumes:## WARNING: THIS WILL OVERWRITE ALL EXISTING DATA!!! Restore all data volumes from the local host.
docker run --rm--volumes-from edx.devstack.mysql -v$$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mysql.tar.gz
docker run --rm--volumes-from edx.devstack.mongo -v$$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mongo.tar.gz
docker run --rm--volumes-from edx.devstack.elasticsearch -v$$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/elasticsearch.tar.gz
# Generates a help message. Borrowed from https://github.com/pydanny/cookiecutter-djangopackage.
help:## Display this help message
help:## Display this help message
@echo"Please use \`make <target>' where <target> is one of"
@echo"Please use \`make <target>' where <target> is one of"
devstack.destroy:## Destroy all containers and volumes
./destroy.sh
# TODO Print out help for this target. Even better if we can iterate over the services in docker-compose.yml, and
# print the actual service names.
devstack.open.%:## Open a shell into the specified service container
docker exec-it edx.devstack.$* env TERM=$(TERM) /edx/app/$*/devstack.sh open
devstack.open.lms:## Open a shell into the LMS container
docker exec-it edx.devstack.lms env TERM=$(TERM) /edx/app/edxapp/devstack.sh open
devstack.open.studio:## Open a shell into the Studio container
clone:## Clone service repos to the parent directory
docker exec-it edx.devstack.studio env TERM=$(TERM) /edx/app/edxapp/devstack.sh open
./clone.sh
devstack.provision:## Provision all services
provision:## Provision all services
./provision.sh
./provision.sh
devstack.reset:## Remove all service containers
up:## Bring up all services with host volumes
docker-compose down
devstack.start:## Start all services (with host volumes)
docker-compose -f docker-compose.yml -f docker-compose-host.yml up
docker-compose -f docker-compose.yml -f docker-compose-host.yml up
devstack.start.sync:## Start all services (with docker-sync)
up-sync:## Bring up all services with docker-sync
docker-sync-stack start
docker-sync-stack start
devstack.stop:## Stop all services
stop:## Stop all services
docker-compose stop
docker-compose stop
requirements:## Install requirements
down:## Remove all service containers and networks
pip install -r requirements.txt
docker-compose down
destroy:## Remove all devstack-related containers, networks, and volumes
./destroy.sh
update-images:## Update the Docker images
pull:## Update Docker images
docker-compose pull
docker-compose pull
validate:## Validate the devstack configuration
validate:## Validate the devstack configuration
docker-compose config
docker-compose config
backup:## Write all data volumes to the host.
docker run --rm--volumes-from edx.devstack.mysql -v$$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mysql.tar.gz /var/lib/mysql
docker run --rm--volumes-from edx.devstack.mongo -v$$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/mongo.tar.gz /data/db
docker run --rm--volumes-from edx.devstack.elasticsearch -v$$(pwd)/.dev/backups:/backup debian:jessie tar zcvf /backup/elasticsearch.tar.gz /usr/share/elasticsearch/data
restore:## Restore all data volumes from the host. WARNING: THIS WILL OVERWRITE ALL EXISTING DATA!
docker run --rm--volumes-from edx.devstack.mysql -v$$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mysql.tar.gz
docker run --rm--volumes-from edx.devstack.mongo -v$$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/mongo.tar.gz
docker run --rm--volumes-from edx.devstack.elasticsearch -v$$(pwd)/.dev/backups:/backup debian:jessie tar zxvf /backup/elasticsearch.tar.gz
# TODO: Print out help for this target. Even better if we can iterate over the
# services in docker-compose.yml, and print the actual service names.
%-shell:## Run a shell on the specified service container
docker exec-it edx.devstack.$* env TERM=$(TERM) /edx/app/$*/devstack.sh open
lms-shell:## Run a shell on the LMS container
docker exec-it edx.devstack.lms env TERM=$(TERM) /edx/app/edxapp/devstack.sh open
studio-shell:## Run a shell on the Studio container
docker exec-it edx.devstack.studio env TERM=$(TERM) /edx/app/edxapp/devstack.sh open