mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-11-17 18:45:15 +00:00
2f9766a3a1
Added the possibility to easily change the ports that nginx listens to. This is useful, for instance when Apache or Nginx already runs on the host. With this change, it is no longer necessary to edit the docker-compose file to modify these ports. To deploy with alternate ports, add a `.env` file with the following contents: ``` OPENEDX_NGINX_PORT=8080 OPENEDX_NGINX_TLSPORT=8443 ```
148 lines
3.5 KiB
YAML
148 lines
3.5 KiB
YAML
version: "3"
|
|
services:
|
|
|
|
############# External services
|
|
|
|
memcached:
|
|
image: memcached:1.4.38
|
|
restart: unless-stopped
|
|
|
|
mongodb:
|
|
image: mongo:3.2.16
|
|
# Use WiredTiger in all environments, just like at edx.org
|
|
command: mongod --smallfiles --nojournal --storageEngine wiredTiger
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data/mongodb:/data/db
|
|
|
|
mysql:
|
|
image: mysql:5.6.36
|
|
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data/mysql:/var/lib/mysql
|
|
env_file: ./config/mysql/auth.env
|
|
|
|
elasticsearch:
|
|
image: elasticsearch:1.5.2
|
|
environment:
|
|
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
|
|
- "cluster.name=openedx"
|
|
- "bootstrap.memory_lock=true"
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data/elasticsearch:/usr/share/elasticsearch/data
|
|
|
|
nginx:
|
|
image: nginx:1.13
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${NGINX_HTTP_PORT:-80}:80"
|
|
- "${NGINX_HTTPS_PORT:-443}:443"
|
|
volumes:
|
|
- ./config/nginx:/etc/nginx/conf.d/
|
|
- ./data/lms:/openedx/data/lms:ro
|
|
- ./data/cms:/openedx/data/cms:ro
|
|
- ./data/letsencrypt:/etc/letsencrypt/:ro
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3.6.10
|
|
volumes:
|
|
- ./data/rabbitmq:/var/lib/rabbitmq
|
|
restart: unless-stopped
|
|
|
|
# Simple SMTP server
|
|
smtp:
|
|
image: namshi/smtp
|
|
restart: unless-stopped
|
|
|
|
############# Forum
|
|
|
|
forum:
|
|
image: regis/openedx-forum:hawthorn
|
|
build:
|
|
context: ./forum
|
|
environment:
|
|
API_KEY: "forumapikey"
|
|
SEARCH_SERVER: "http://elasticsearch:9200"
|
|
MONGOHQ_URL: "mongodb://mongodb/cs_comments_service"
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- elasticsearch
|
|
- mongodb
|
|
|
|
############# LMS and CMS
|
|
|
|
lms:
|
|
image: regis/openedx:hawthorn
|
|
build:
|
|
context: ./openedx
|
|
environment:
|
|
SERVICE_VARIANT: lms
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./config/openedx:/openedx/config
|
|
- ./data/lms:/openedx/data
|
|
depends_on:
|
|
- elasticsearch
|
|
- forum
|
|
- memcached
|
|
- mongodb
|
|
- mysql
|
|
- rabbitmq
|
|
- smtp
|
|
|
|
cms:
|
|
image: regis/openedx:hawthorn
|
|
build:
|
|
context: ./openedx
|
|
environment:
|
|
SERVICE_VARIANT: cms
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./config/openedx:/openedx/config
|
|
- ./data/cms:/openedx/data
|
|
depends_on:
|
|
- memcached
|
|
- mongodb
|
|
- mysql
|
|
- rabbitmq
|
|
- smtp
|
|
|
|
############# LMS and CMS workers
|
|
|
|
# We could probably create one service per queue here. For small instances, it is not necessary.
|
|
lms_worker:
|
|
image: regis/openedx:hawthorn
|
|
build:
|
|
context: ./openedx
|
|
environment:
|
|
SERVICE_VARIANT: lms
|
|
C_FORCE_ROOT: "1" # run celery tasks as root #nofear
|
|
command: ./manage.py lms celery worker --loglevel=info --hostname=edx.lms.core.default.%%h --maxtasksperchild 100
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./config/openedx:/openedx/config
|
|
- ./data/lms:/openedx/data
|
|
depends_on:
|
|
- lms
|
|
|
|
cms_worker:
|
|
image: regis/openedx:hawthorn
|
|
build:
|
|
context: ./openedx
|
|
environment:
|
|
SERVICE_VARIANT: cms
|
|
C_FORCE_ROOT: "1" # run celery tasks as root #nofear
|
|
command: ./manage.py cms celery worker --loglevel=info --hostname=edx.cms.core.default.%%h --maxtasksperchild 100
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./config/openedx:/openedx/config
|
|
- ./data/cms:/openedx/data
|
|
depends_on:
|
|
- cms
|