version: '3.5' 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: container_name: ${CONTAINERS_NAME}_django build: . 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_and_pvz_groups.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 runserver 0.0.0.0:${DJANGO_PORT}" environment: <<: *postgres-variables <<: *django-variables <<: *frontend-variables ports: - "${DJANGO_PORT}:${DJANGO_PORT}" 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: restart: always environment: <<: *postgres-variables <<: *django-variables build: context: . entrypoint: [ "celery", "-A", "postamates", "beat","-l", "info", "--scheduler", "django_celery_beat.schedulers:DatabaseScheduler" ] depends_on: - db - loyalty-rabbit - django - worker worker: restart: always environment: <<: *postgres-variables <<: *django-variables build: context: . entrypoint: [ "celery", "-A", "postamates.celery:app", "worker" ] depends_on: - db - loyalty-rabbit - django db: container_name: ${CONTAINERS_NAME}_db image: mdillon/postgis environment: <<: *postgres-variables ports: - "${POSTGRES_PORT}:${POSTGRES_PORT}" expose: - "${POSTGRES_PORT}" volumes: - ${POSTGRES_VOLUME_PATH}:/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://postnet-dev.selftech.ru/media/swagger.json" volumes: rabbitmq_data: rabbitmq_log: