version: '3.4' x-web-variables: &web-variables DJANGO_SETTINGS_MODULE: lolmd.settings.prod SECRET_KEY: ${SECRET_KEY} RIOT_API_KEY: ${RIOT_API_KEY} POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_NAME: lolmd POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} HEARTBEAT_RATE: 60 REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: ${REDIS_PASSWORD} ADMIN_PASSWORD: ${ADMIN_PASSWORD} services: postgres: restart: always image: postgres:11.3 environment: - POSTGRES_HOST=postgres - POSTGRES_DB=lolmd - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - PGDATA=/var/lib/postgresql/data/ volumes: - postgres_data:/var/lib/postgresql/data/ ports: - "5432:5432" redis: image: redis:5.0.5 environment: - REDIS_PASSWORD=${REDIS_PASSWORD:-redis} volumes: - redisdata:/data ports: - "6379:6379" command: > --requirepass $REDIS_PASSWORD web: restart: always build: ./web/ environment: *web-variables command: > bash -c "python manage.py makemigrations core && python manage.py migrate --noinput && python manage.py add_regions && python manage.py add_models && python manage.py add_admins && python manage.py prune_matches && python manage.py flush_redis && python manage.py collectstatic --noinput && python manage.py queue_random_matches && /usr/local/bin/gunicorn lolmd.wsgi:application -w 2 -b :8000" volumes: - /static:/static ports: - "8000" depends_on: - postgres - redis nginx: restart: always build: ./nginx/ ports: - "80:80" volumes: - /static:/static links: - web:web rqworker: restart: always build: ./web/ environment: *web-variables command: bash wait-for-it.sh web:8000 -t 0 -- python manage.py rqworker default depends_on: - web rqscheduler: restart: always build: ./web/ environment: *web-variables command: bash wait-for-it.sh web:8000 -t 0 -- python manage.py rqscheduler --interval 60 depends_on: - web redis-commander: restart: always image: rediscommander/redis-commander ports: - "8082:8082" links: - redis:redis environment: - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=${REDIS_PASSWORD:-redis} - PORT=8082 depends_on: - redis volumes: web-static: postgres_data: redisdata: