mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-06-03 14:50:47 +00:00
206 lines
6.5 KiB
YAML
206 lines
6.5 KiB
YAML
version: "{{ DOCKER_COMPOSE_VERSION }}"
|
|
services:
|
|
|
|
############# External services
|
|
|
|
{% if RUN_MONGODB %}
|
|
mongodb:
|
|
image: {{ DOCKER_IMAGE_MONGODB }}
|
|
# Use WiredTiger in all environments, just like at edx.org
|
|
command: mongod --nojournal --storageEngine wiredTiger
|
|
restart: unless-stopped
|
|
user: "999:999"
|
|
privileged: false
|
|
volumes:
|
|
- ../../data/mongodb:/data/db
|
|
depends_on:
|
|
- mongodb-permissions
|
|
mongodb-permissions:
|
|
image: {{ DOCKER_IMAGE_PERMISSIONS }}
|
|
command: ["999", "/data/db"]
|
|
restart: on-failure
|
|
volumes:
|
|
- ../../data/mongodb:/data/db
|
|
{% endif %}
|
|
|
|
{% if RUN_MYSQL %}
|
|
mysql:
|
|
image: {{ DOCKER_IMAGE_MYSQL }}
|
|
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
|
|
restart: unless-stopped
|
|
user: "999:999"
|
|
privileged: false
|
|
volumes:
|
|
- ../../data/mysql:/var/lib/mysql
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: "{{ MYSQL_ROOT_PASSWORD }}"
|
|
mysql-permissions:
|
|
image: {{ DOCKER_IMAGE_PERMISSIONS }}
|
|
command: ["999", "/var/lib/mysql"]
|
|
restart: on-failure
|
|
volumes:
|
|
- ../../data/mysql:/var/lib/mysql
|
|
{% endif %}
|
|
|
|
{% if RUN_ELASTICSEARCH %}
|
|
elasticsearch:
|
|
image: {{ DOCKER_IMAGE_ELASTICSEARCH }}
|
|
environment:
|
|
- cluster.name=openedx
|
|
- bootstrap.memory_lock=true
|
|
- discovery.type=single-node
|
|
- "ES_JAVA_OPTS=-Xms{{ ELASTICSEARCH_HEAP_SIZE }} -Xmx{{ ELASTICSEARCH_HEAP_SIZE }}"
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
restart: unless-stopped
|
|
user: "1000:1000"
|
|
volumes:
|
|
- ../../data/elasticsearch:/usr/share/elasticsearch/data
|
|
depends_on:
|
|
- elasticsearch-permissions
|
|
elasticsearch-permissions:
|
|
image: {{ DOCKER_IMAGE_PERMISSIONS }}
|
|
command: ["1000", "/usr/share/elasticsearch/data"]
|
|
restart: on-failure
|
|
volumes:
|
|
- ../../data/elasticsearch:/usr/share/elasticsearch/data
|
|
{% endif %}
|
|
|
|
{% if RUN_REDIS %}
|
|
redis:
|
|
image: {{ DOCKER_IMAGE_REDIS }}
|
|
working_dir: /openedx/redis/data
|
|
user: "1000:1000"
|
|
volumes:
|
|
- ../apps/redis/redis.conf:/openedx/redis/config/redis.conf:ro
|
|
- ../../data/redis:/openedx/redis/data
|
|
command: redis-server /openedx/redis/config/redis.conf
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- redis-permissions
|
|
redis-permissions:
|
|
image: {{ DOCKER_IMAGE_PERMISSIONS }}
|
|
command: ["1000", "/openedx/redis/data"]
|
|
restart: on-failure
|
|
volumes:
|
|
- ../../data/redis:/openedx/redis/data
|
|
{% endif %}
|
|
|
|
{% if RUN_SMTP %}
|
|
smtp:
|
|
image: {{ DOCKER_IMAGE_SMTP }}
|
|
restart: unless-stopped
|
|
user: "100:101"
|
|
environment:
|
|
HOSTNAME: "{{ LMS_HOST }}"
|
|
{% endif %}
|
|
|
|
############# LMS and CMS
|
|
|
|
{% if RUN_LMS %}
|
|
lms:
|
|
image: {{ DOCKER_IMAGE_OPENEDX }}
|
|
environment:
|
|
SERVICE_VARIANT: lms
|
|
DJANGO_SETTINGS_MODULE: lms.envs.tutor.production
|
|
UWSGI_WORKERS: {{ OPENEDX_LMS_UWSGI_WORKERS }}
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
|
|
- ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
|
|
- ../apps/openedx/config:/openedx/config:ro
|
|
- ../apps/openedx/uwsgi.ini:/openedx/edx-platform/uwsgi.ini:ro
|
|
- ../../data/lms:/openedx/data
|
|
- ../../data/openedx-media:/openedx/media
|
|
depends_on:
|
|
- lms-permissions
|
|
{% if RUN_MYSQL %}- mysql{% endif %}
|
|
{% if RUN_ELASTICSEARCH %}- elasticsearch{% endif %}
|
|
{% if RUN_MONGODB %}- mongodb{% endif %}
|
|
{% if RUN_REDIS %}- redis{% endif %}
|
|
{% if RUN_SMTP %}- smtp{% endif %}
|
|
{{ patch("local-docker-compose-lms-dependencies")|indent(6) }}
|
|
lms-permissions:
|
|
image: {{ DOCKER_IMAGE_PERMISSIONS }}
|
|
command: ["1000", "/openedx/data", "/openedx/media"]
|
|
restart: on-failure
|
|
volumes:
|
|
- ../../data/lms:/openedx/data
|
|
- ../../data/openedx-media:/openedx/media
|
|
{% endif %}
|
|
|
|
{% if RUN_CMS %}
|
|
cms:
|
|
image: {{ DOCKER_IMAGE_OPENEDX }}
|
|
environment:
|
|
SERVICE_VARIANT: cms
|
|
DJANGO_SETTINGS_MODULE: cms.envs.tutor.production
|
|
UWSGI_WORKERS: {{ OPENEDX_CMS_UWSGI_WORKERS }}
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
|
|
- ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
|
|
- ../apps/openedx/config:/openedx/config:ro
|
|
- ../apps/openedx/uwsgi.ini:/openedx/edx-platform/uwsgi.ini:ro
|
|
- ../../data/cms:/openedx/data
|
|
- ../../data/openedx-media:/openedx/media
|
|
depends_on:
|
|
- cms-permissions
|
|
{% if RUN_MYSQL %}- mysql{% endif %}
|
|
{% if RUN_ELASTICSEARCH %}- elasticsearch{% endif %}
|
|
{% if RUN_MONGODB %}- mongodb{% endif %}
|
|
{% if RUN_REDIS %}- redis{% endif %}
|
|
{% if RUN_SMTP %}- smtp{% endif %}
|
|
{% if RUN_LMS %}- lms{% endif %}
|
|
{{ patch("local-docker-compose-cms-dependencies")|indent(6) }}
|
|
cms-permissions:
|
|
image: {{ DOCKER_IMAGE_PERMISSIONS }}
|
|
command: ["1000", "/openedx/data", "/openedx/media"]
|
|
restart: on-failure
|
|
volumes:
|
|
- ../../data/cms:/openedx/data
|
|
- ../../data/openedx-media:/openedx/media
|
|
{% endif %}
|
|
|
|
############# LMS and CMS workers
|
|
|
|
{% if RUN_LMS %}
|
|
lms-worker:
|
|
image: {{ DOCKER_IMAGE_OPENEDX }}
|
|
environment:
|
|
SERVICE_VARIANT: lms
|
|
DJANGO_SETTINGS_MODULE: lms.envs.tutor.production
|
|
command: celery --app=lms.celery worker --loglevel=info --hostname=edx.lms.core.default.%%h --max-tasks-per-child=100 --exclude-queues=edx.cms.core.default
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
|
|
- ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
|
|
- ../apps/openedx/config:/openedx/config:ro
|
|
- ../../data/lms:/openedx/data
|
|
- ../../data/openedx-media:/openedx/media
|
|
depends_on:
|
|
- lms
|
|
{% endif %}
|
|
|
|
{% if RUN_CMS %}
|
|
cms-worker:
|
|
image: {{ DOCKER_IMAGE_OPENEDX }}
|
|
environment:
|
|
SERVICE_VARIANT: cms
|
|
DJANGO_SETTINGS_MODULE: cms.envs.tutor.production
|
|
command: celery --app=cms.celery worker --loglevel=info --hostname=edx.cms.core.default.%%h --max-tasks-per-child 100 --exclude-queues=edx.lms.core.default
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ../apps/openedx/settings/lms:/openedx/edx-platform/lms/envs/tutor:ro
|
|
- ../apps/openedx/settings/cms:/openedx/edx-platform/cms/envs/tutor:ro
|
|
- ../apps/openedx/config:/openedx/config:ro
|
|
- ../../data/cms:/openedx/data
|
|
- ../../data/openedx-media:/openedx/media
|
|
depends_on:
|
|
- cms
|
|
{% endif %}
|
|
|
|
{{ patch("local-docker-compose-services")|indent(2) }}
|