x-postgres-variables: &postgres-variables POSTGRES_DB: "${POSTGRES_DB}" POSTGRES_HOST: "${POSTGRES_HOST}" POSTGRES_PORT: "${POSTGRES_PORT}" POSTGRES_USER: "${POSTGRES_USER}" POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}" POSTGRES_HOST_AUTH_METHOD: "${POSTGRES_HOST_AUTH_METHOD}" x-django-variables: &django-variables PYTHONUNBUFFERED: 1 DJANGO_PORT: "${DJANGO_PORT}" DEBUG: "${DEBUG}" x-frontend-variables: &frontend-variables DOMAIN: "${DOMAIN}" REACT_APP_DOMAIN_URL: "https://${DOMAIN}/" x-martin-variables: &martin-variables MARTIN_PORT: "${MARTIN_PORT}" services: django: security_opt: - seccomp:unconfined cap_add: - SYS_PTRACE container_name: ${CONTAINERS_NAME}_django build: context: . dockerfile: ./deploy/dockerfiles/Dockerfile command: > sh -c "python manage.py migrate && python manage.py collectstatic --noinput && python manage.py loaddata fixtures/groups.json && python manage.py loaddata fixtures/post_and_pvz.json && python manage.py loaddata fixtures/post_pvz_groups.json && python manage.py loaddata fixtures/otherobjectscategorys.json && python manage.py loaddata fixtures/otherobjectsgroups.json && python manage.py delete_views && python manage.py create_procedures && python manage.py migrate && python manage.py create_views && python manage.py kill_update && python manage.py runserver 0.0.0.0:${DJANGO_PORT}" environment: <<: [*postgres-variables, *django-variables, *frontend-variables] CELERY_BROKER_URL: amqp://loyalty-rabbit:5672 ports: - "${DJANGO_PORT}:${DJANGO_PORT}" - 5678:5678 expose: - "${DJANGO_PORT}" restart: always depends_on: - db loyalty-rabbit: image: rabbitmq:3.9-management container_name: loyalty-rabbit volumes: - rabbitmq_data:/var/lib/rabbitmq - rabbitmq_log:/var/log/rabbitmq logging: driver: none restart: always ports: - 5672:5672 beat: security_opt: - seccomp:unconfined cap_add: - SYS_PTRACE restart: always environment: <<: [*postgres-variables, *django-variables] CELERY_BROKER_URL: amqp://loyalty-rabbit:5672 build: context: . dockerfile: ./deploy/dockerfiles/Dockerfile entrypoint: [ "celery", "-A", "postamates", "beat","-l", "info", "--scheduler", "django_celery_beat.schedulers:DatabaseScheduler" ] depends_on: - db - loyalty-rabbit - django - worker ports: - 5679:5678 worker: security_opt: - seccomp:unconfined cap_add: - SYS_PTRACE restart: always environment: <<: [*postgres-variables, *django-variables] CELERY_BROKER_URL: amqp://loyalty-rabbit:5672 build: context: . dockerfile: ./deploy/dockerfiles/Dockerfile entrypoint: [ "celery", "-A", "postamates.celery:app", "worker", "--concurrency", "1" ] depends_on: - db - loyalty-rabbit - django ports: - 5680:5678 db: container_name: ${CONTAINERS_NAME}_db image: mdillon/postgis environment: <<: *postgres-variables ports: - "${POSTGRES_PORT}:${POSTGRES_PORT}" expose: - "${POSTGRES_PORT}" volumes: - pg_data:/var/lib/postgresql/data command: -p ${POSTGRES_PORT} martin: container_name: ${CONTAINERS_NAME}_martin image: urbica/martin ports: - "${MARTIN_PORT}:3000" environment: <<: *martin-variables WATCH_MODE: "true" DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/${POSTGRES_DB}" depends_on: - db - django restart: always swagger-ui: image: swaggerapi/swagger-ui ports: - "8099:8099" environment: PORT: 8099 SWAGGER_JSON_URL: "https://localhost/media/swagger.json" volumes: rabbitmq_data: rabbitmq_log: pg_data: