version: "3.4" services: mysql: image: mysql:5.6 ports: - "3316:3306" env_file: .env 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 mailcatcher: image: sj26/mailcatcher:latest ports: - "1080:1080" lms: build: context: . args: UID: ${UID} GID: ${GID} image: openedx-xapi:latest env_file: .env ports: - "8000:8000" volumes: - .:/edx/app/xapi command: > dockerize -wait tcp://mysql:3306 -timeout 60s python manage.py lms runserver 0.0.0.0:8000 --settings=fun.docker_run_development depends_on: - mailcatcher - mysql - mongodb - memcached - xapi # Learning locker services redis: image: redis:4-alpine xapi: image: learninglocker/xapi-service:v1.1.0 restart: unless-stopped environment: - MONGO_URL=mongodb://mongodb:27017/learninglocker_v2 - REDIS_URL=redis://redis:6379/0 depends_on: - mongodb - redis api: image: up2university/learninglocker2-app:${DOCKER_TAG} environment: - DOMAIN_NAME - APP_SECRET - SMTP_HOST - SMTP_PORT - SMTP_SECURED - SMTP_USER - SMTP_PASS - MONGODB_PATH command: "node api/dist/server" depends_on: - mongodb - redis - mailcatcher ui: image: up2university/learninglocker2-app:${DOCKER_TAG} environment: - DOMAIN_NAME - APP_SECRET - SMTP_HOST - SMTP_PORT - SMTP_SECURED - SMTP_USER - SMTP_PASS - MONGODB_PATH command: "./entrypoint-ui.sh" depends_on: - mongodb - redis - api # FIXME: not sure we need this service for development worker: image: up2university/learninglocker2-app:${DOCKER_TAG} environment: - DOMAIN_NAME - APP_SECRET - SMTP_HOST - SMTP_PORT - SMTP_SECURED - SMTP_USER - SMTP_PASS - MONGODB_PATH command: "node worker/dist/server" depends_on: - mongodb - redis - mailcatcher nginx: image: up2university/learninglocker2-nginx:${DOCKER_TAG} environment: - DOMAIN_NAME depends_on: - ui - xapi ports: - "8443:443" - "8080:80"