Files
2025-04-14 18:44:02 +02:00

195 lines
6.9 KiB
YAML

# OpenEdx docker-compose stack used for development/test purpose
#
#
#
# Nota bene: this docker-compose file requires that you have set the DOCKER_UID
# and DOCKER_GID variables with relevant values (i.e. matching the current
# system user ids). If you use the project's Makefile or the bin/compose
# wrapper, those variable definitions have already been handled on your behalf.
version: "3.5"
services:
# mysql:
# image: mysql:5.6
# ports:
# - "3316:3306"
# env_file: env.d/development
# command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
mongodb:
image: mongo:3.2
# We use WiredTiger in all environments. In development environments we use small files
# to conserve disk space, and disable the journal for a minor performance gain.
# See https://docs.mongodb.com/v3.0/reference/program/mongod/#options for complete details.
command: mongod --smallfiles --nojournal --storageEngine wiredTiger
memcached:
image: memcached:1.4
# redis:
# image: redis:4.0.10-alpine
# redis-master:
# image: redis:4.0.10-alpine
#
# redis-slave:
# image: redis:4.0.10-alpine
# command: redis-server --slaveof redis-master 6379
# depends_on:
# - redis-master
# redis-sentinel:
# image: s7anley/redis-sentinel-docker
# environment:
# - MASTER_NAME=mymaster
# - QUORUM=1
# - MASTER=redis-master
# depends_on:
# - redis-master
# - redis-slave
mailcatcher:
image: sj26/mailcatcher:latest
ports:
- "1080:1080"
lms:
build:
context: ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}
target: production
args:
EDX_RELEASE_REF: ${EDX_RELEASE_REF:-release-2018-08-29-14.14}
EDX_ARCHIVE_URL: ${EDX_ARCHIVE_URL:-https://github.com/edx/edx-platform/archive/release-2018-08-29-14.14.tar.gz}
image: "${EDXAPP_IMAGE_NAME:-edxapp}:${EDXAPP_IMAGE_TAG:-master-bare}"
env_file:
- env.d/development
- env.d/${REDIS_SERVICE:-redis}
environment:
SERVICE_VARIANT: lms
DJANGO_SETTINGS_MODULE: lms.envs.fun.docker_run
volumes:
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/media:/edx/var/edxapp/media
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/store:/edx/app/edxapp/data
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/export:/edx/var/edxapp/export
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/config:/config
- ./docker/files/usr/local/bin/auth_init:/usr/local/bin/auth_init
# Add lines here to override source code in a Python module e.g.:
#- ./src/edx-ora2/openassessment:/usr/local/lib/python2.7/dist-packages/openassessment
user: ${DOCKER_UID}:${DOCKER_GID}
stdin_open: true
tty: true
depends_on:
- mailcatcher
- mysql
- mongodb
- memcached
- ${REDIS_SERVICE:-redis}
lms-dev:
build:
context: ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}
target: development
args:
DOCKER_UID: ${DOCKER_UID}
DOCKER_GID: ${DOCKER_GID}
EDX_RELEASE_REF: ${EDX_RELEASE_REF:-release-2018-08-29-14.14}
EDX_ARCHIVE_URL: ${EDX_ARCHIVE_URL:-https://github.com/edx/edx-platform/archive/release-2018-08-29-14.14.tar.gz}
image: "${EDXAPP_IMAGE_NAME:-edxapp}:${EDXAPP_IMAGE_TAG:-master-bare}-dev"
env_file:
- env.d/development
- env.d/${REDIS_SERVICE:-redis}
environment:
SERVICE_VARIANT: lms
DJANGO_SETTINGS_MODULE: lms.envs.fun.docker_run
ports:
- "8072:8000"
volumes:
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/src/edx-platform:/edx/app/edxapp/edx-platform
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/static/development:/edx/app/edxapp/staticfiles
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/media:/edx/var/edxapp/media
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/store:/edx/app/edxapp/data
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/export:/edx/var/edxapp/export
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/config:/config
# Add lines here to override source code in a Python module e.g.:
#- ./src/edx-ora2/openassessment:/usr/local/lib/python2.7/dist-packages/openassessment
command: >
python manage.py lms runserver 0.0.0.0:8000 --settings=fun.docker_run_development
depends_on:
- mailcatcher
- mysql
- mongodb
- memcached
- ${REDIS_SERVICE:-redis}
cms:
image: "${EDXAPP_IMAGE_NAME:-edxapp}:${EDXAPP_IMAGE_TAG:-master-bare}"
env_file:
- env.d/development
- env.d/${REDIS_SERVICE:-redis}
environment:
SERVICE_VARIANT: cms
DJANGO_SETTINGS_MODULE: cms.envs.fun.docker_run
volumes:
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/media:/edx/var/edxapp/media
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/data/store:/edx/app/edxapp/data
- ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}/config:/config
# Add lines here to override source code in a Python module e.g.:
#- ./src/edx-ora2/openassessment:/usr/local/lib/python2.7/dist-packages/openassessment
networks:
- default
- outside
depends_on:
- lms
user: ${DOCKER_UID}:${DOCKER_GID}
cms-dev:
image: "${EDXAPP_IMAGE_NAME:-edxapp}:${EDXAPP_IMAGE_TAG:-master-bare}-dev"
env_file:
- env.d/development
- env.d/${REDIS_SERVICE:-redis}
ports:
- "8082:8000"
volumes:
- /srv/openedx/src/edx-platform:/edx/app/edxapp/edx-platform
- /srv/openedx/data/static/development:/edx/app/edxapp/staticfiles
- /srv/openedx/data/media:/edx/var/edxapp/media
- /srv/openedx/data/store:/edx/app/edxapp/data
- /srv/openedx/config:/config
# Add lines here to override source code in a Python module e.g.:
#- ./src/edx-ora2/openassessment:/usr/local/lib/python2.7/dist-packages/openassessment
command: >
python manage.py cms runserver 0.0.0.0:8000 --settings=fun.docker_run_development
depends_on:
- lms-dev
nginx:
build:
context: ./${FLAVORED_EDX_RELEASE_PATH:-releases/master/0/bare}
target: nginx
args:
EDX_RELEASE_REF: ${EDX_RELEASE_REF:-release-2018-08-29-14.14}
EDX_ARCHIVE_URL: ${EDX_ARCHIVE_URL:-https://github.com/edx/edx-platform/archive/release-2018-08-29-14.14.tar.gz}
image: "${EDXAPP_NGINX_IMAGE_NAME:-edxapp-nginx}:${EDXAPP_IMAGE_TAG:-master-bare}"
ports:
- "8073:8073"
- "8083:8083"
networks:
default:
aliases:
- nginx
outside:
aliases:
- edx
volumes:
- ../data/openedx/nginx:/etc/nginx/conf.d:ro
- /srv/openedx/data/media:/data/media:ro
depends_on:
- lms
- cms
# dockerize:
# image: jwilder/dockerize
networks:
outside: