Skip to content
This repository was archived by the owner on Aug 1, 2024. It is now read-only.

Commit c98ba81

Browse files
authored
Merge pull request #988 from openedx/NIXKnight/PSRE-2032
chore: update LMS provisioning script for new edx-platform Dockerfile
2 parents abac29d + bde4c11 commit c98ba81

File tree

2 files changed

+46
-7
lines changed

2 files changed

+46
-7
lines changed

docker-compose.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,10 @@ services:
449449
EDXAPP_TEST_MONGO_HOST: edx.devstack.mongo
450450
NO_PYTHON_UNINSTALL: 1
451451
DJANGO_WATCHMAN_TIMEOUT: 30
452+
VIRTUAL_ENV: "/edx/app/edxapp/venvs/edxapp"
453+
LMS_CFG: "/edx/etc/lms.yml"
454+
CMS_CFG: "/edx/etc/studio.yml"
455+
PATH: "/edx/app/edxapp/venvs/edxapp/bin:/edx/app/edxapp/nodeenv/bin:/edx/app/edxapp/edx-platform/node_modules/.bin:/edx/app/edxapp/edx-platform/bin:${PATH}"
452456
image: edxops/edxapp:${OPENEDX_RELEASE:-latest}
453457
networks:
454458
default:
@@ -611,8 +615,12 @@ services:
611615
BOK_CHOY_LMS_PORT: 18103
612616
BOK_CHOY_CMS_PORT: 18131
613617
EDXAPP_TEST_MONGO_HOST: edx.devstack.mongo
618+
VIRTUAL_ENV: "/edx/app/edxapp/venvs/edxapp"
619+
PATH: "/edx/app/edxapp/venvs/edxapp/bin:/edx/app/edxapp/nodeenv/bin:/edx/app/edxapp/edx-platform/node_modules/.bin:/edx/app/edxapp/edx-platform/bin:${PATH}"
614620
NO_PYTHON_UNINSTALL: 1
615621
DJANGO_WATCHMAN_TIMEOUT: 30
622+
LMS_CFG: "/edx/etc/lms.yml"
623+
CMS_CFG: "/edx/etc/studio.yml"
616624
image: edxops/edxapp:${OPENEDX_RELEASE:-latest}
617625
networks:
618626
default:

provision-lms.sh

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,28 @@ for app in "${apps[@]}"; do
1515
docker-compose up -d $app
1616
done
1717

18-
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PYTHON_UNINSTALL=1 paver install_prereqs'
18+
# install git for both LMS and Studio
19+
for app in "${apps[@]}"; do
20+
docker-compose exec -T $app bash -e -c 'apt-get update && apt-get -y install --no-install-recommends git'
21+
22+
docker-compose exec -T $app bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && NO_PYTHON_UNINSTALL=1 paver install_prereqs'
1923

20-
#Installing prereqs crashes the process
21-
docker-compose restart lms
24+
#Installing prereqs crashes the process
25+
docker-compose restart $app
26+
done
2227

2328
# Run edxapp migrations first since they are needed for the service users and OAuth clients
24-
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_db --settings devstack_docker'
29+
# docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_db --settings devstack_docker'
30+
31+
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms showmigrations --database default --traceback --pythonpath=. --settings devstack_docker'
32+
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms migrate --database default --noinput --traceback --pythonpath=. --settings devstack_docker'
33+
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms showmigrations --database student_module_history --traceback --pythonpath=. --settings devstack_docker'
34+
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms migrate --database student_module_history --noinput --traceback --pythonpath=. --settings devstack_docker'
35+
36+
docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms showmigrations --database default --traceback --pythonpath=. --settings devstack_docker'
37+
docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms migrate --database default --noinput --traceback --pythonpath=. --settings devstack_docker'
38+
docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms showmigrations --database student_module_history --traceback --pythonpath=. --settings devstack_docker'
39+
docker-compose exec -T studio bash -e -c 'source /edx/app/edxapp/edxapp_env && /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py cms migrate --database student_module_history --noinput --traceback --pythonpath=. --settings devstack_docker'
2540

2641
# Create a superuser for edxapp
2742
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker manage_user edx edx@example.com --superuser --staff'
@@ -34,14 +49,30 @@ docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && echo
3449
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker configure_commerce'
3550

3651
# Create demo course and users
37-
docker-compose exec -T lms bash -e -c '/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook /edx/app/edx_ansible/edx_ansible/playbooks/demo.yml -v -c local -i "127.0.0.1," --extra-vars="COMMON_EDXAPP_SETTINGS=devstack_docker"'
52+
#docker-compose exec -T lms bash -e -c '/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook /edx/app/edx_ansible/edx_ansible/playbooks/demo.yml -v -c local -i "127.0.0.1," --extra-vars="COMMON_EDXAPP_SETTINGS=devstack_docker"'
53+
docker-compose exec -T lms bash -e -c 'git clone https://github.com/openedx/edx-demo-course.git /tmp/edx-demo-course'
54+
docker-compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms --settings=devstack_docker import /edx/var/edxapp/data /tmp/edx-demo-course && rm -rf /tmp/edx-demo-course'
55+
demo_hashed_password='pbkdf2_sha256$20000$TjE34FJjc3vv$0B7GUmH8RwrOc/BvMoxjb5j8EgnWTt3sxorDANeF7Qw='
56+
for user in honor audit verified staff ; do
57+
email="$user@example.com"
58+
# Set staff flag for staff user
59+
if [[ $user == "staff" ]] ; then
60+
docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker --service-variant lms manage_user $user $email --initial-password-hash \'$demo_hashed_password\' --staff"
61+
else
62+
docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker --service-variant lms manage_user $user $email --initial-password-hash \'$demo_hashed_password\'"
63+
fi
64+
# Enroll users in the demo course
65+
docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker --service-variant lms enroll_user_in_course -e $email -c course-v1:edX+DemoX+Demo_Course"
66+
done
67+
# Seed forums for the demo course
68+
docker-compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack_docker seed_permissions_roles course-v1:edX+DemoX+Demo_Course"
3869

3970
# Fix missing vendor file by clearing the cache
40-
docker-compose exec -T lms bash -e -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1'
71+
docker-compose exec -T lms bash -e -c 'rm /edx/app/edxapp/edx-platform/.prereqs_cache/Node_prereqs.sha1'
4172

4273
# Create static assets for both LMS and Studio
4374
for app in "${apps[@]}"; do
44-
docker-compose exec -T $app bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_assets --settings devstack_docker'
75+
docker-compose exec -T $app bash -e -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && paver update_assets --settings devstack_docker'
4576
done
4677

4778
# Allow LMS SSO for Studio

0 commit comments

Comments
 (0)