version: "2.3" x-env-mapping: &env environment: - CELERY_BROKER_URL=amqp://olympia:olympia@rabbitmq/olympia - CELERY_RESULT_BACKEND=redis://redis:6379/1 - DATABASE_URL=mysql://root:@mysqld/olympia - ELASTICSEARCH_LOCATION=elasticsearch:9200 - MEMCACHE_LOCATION=memcached:11211 - MYSQL_DATABASE=olympia - MYSQL_ROOT_PASSWORD=docker - OLYMPIA_SITE_URL=http://olympia.dev - PYTHONDONTWRITEBYTECODE=1 - PYTHONUNBUFFERED=1 - RECURSION_LIMIT=10000 - REDIS_LOCATION=redis://redis:6379/0?socket_timeout=0.5 - TERM=xterm-256color services: worker: &worker <<: *env image: addons/addons-server command: supervisord -n -c /code/docker/supervisor-celery.conf entrypoint: ./scripts/start-docker.sh volumes: - .:/code extra_hosts: - "olympia.dev:127.0.0.1" web: <<: *worker command: supervisord -n -c /code/docker/supervisor.conf nginx: image: addons/addons-nginx volumes: - ./static:/srv/static - ./site-static:/srv/site-static - ./user-media/:/srv/user-media memcached: image: memcached:1.4 mysqld: image: mysql:5.7 environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - MYSQL_DATABASE=olympia elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:5.4.1 environment: - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" mem_limit: 2g redis: image: redis:2.8 rabbitmq: image: rabbitmq:3.5 hostname: olympia expose: - "5672" environment: - RABBITMQ_DEFAULT_USER=olympia - RABBITMQ_DEFAULT_PASS=olympia - RABBITMQ_DEFAULT_VHOST=olympia autograph: image: mozilla/autograph:2.0.5 selenium-firefox: <<: *env image: b4handjr/selenium-firefox volumes: - .:/code expose: - "4444" ports: - "5900" shm_size: 2g links: - "nginx:olympia.dev"