version: '3.8' services: hyper: env_file: - .env container_name: hyper hostname: hyper build: . volumes: - ./:/proj ports: - 8000:8000 image: hyper-image depends_on: - hyper_db - rabbitmq - clickhouse command: python manage.py runserver 0.0.0.0:8000 networks: - main hyper_populate: env_file: - .env container_name: populate image: hyper-image depends_on: - hyper command: python -m scripts.populate networks: - main hyper_db: image: postgres:13 container_name: hyper_db hostname: hyper_db environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTGRES_DB=postgres volumes: - db_data:/var/lib/postgresql/data ports: - 5432:5432 networks: - main rabbitmq: container_name: rabbitmq hostname: rabbitmq image: rabbitmq:latest ports: - "5672:5672" restart: on-failure networks: - main celery_worker: command: sh -c "wait-for rabbitmq:5672 && wait-for hyper:8000 -- celery -A config worker -l info" container_name: celery_worker depends_on: - hyper - hyper_db - rabbitmq hostname: celery_worker image: hyper-image restart: on-failure networks: - main celery_beat: command: sh -c "wait-for rabbitmq:5672 && wait-for hyper:8000 -- celery -A config beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler" container_name: celery_beat depends_on: - hyper - hyper_db - rabbitmq networks: - main hostname: celery_beat image: hyper-image restart: on-failure clickhouse: image: yandex/clickhouse-server container_name: clickhouse hostname: clickhouse ports: - "8123:8123" - "9000:9000" - "9009:9009" ulimits: nproc: 65535 nofile: soft: 262144 hard: 262144 networks: - main volumes: - ./data/clickhouse clickhouse-client: image: yandex/clickhouse-client container_name: clickhouse-client networks: - main entrypoint: - /bin/sleep command: infinity volumes: db_data: networks: main: