version: '2.4' services: postgres: image: postgres:12.6 command: postgres -c listen_addresses='*' environment: - PGPORT=5433 - POSTGRES_PASSWORD=docker-compose-postgres-password volumes: - ./data/postgres_init/initdb.sql:/docker-entrypoint-initdb.d/initdb.sql - ./data/postgres:/var/lib/postgresql/data healthcheck: test: pg_isready -h postgres -U postgres interval: 5s timeout: 10s retries: 100 redis: image: redis:6.2.7 healthcheck: test: redis-cli ping interval: 3s timeout: 5s retries: 100 elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.16.3 volumes: - ./data/elasticsearch:/usr/share/elasticsearch/data container_name: elasticsearch environment: - http.host=0.0.0.0 - discovery.type=single-node - cluster.routing.allocation.disk.threshold_enabled=false healthcheck: test: bash -c "curl -s elasticsearch:9200/_cat/health | grep green" interval: 3s timeout: 5s retries: 100 ports: - 9200:9200 kibana: image: docker.elastic.co/kibana/kibana:7.16.3 environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 depends_on: elasticsearch: condition: service_healthy healthcheck: test: bash -c "curl -s kibana:5601 | grep kibana" interval: 3s timeout: 5s retries: 100 seqr: image: gcr.io/seqr-project/seqr:gcloud-prod volumes: - ./data/readviz:/readviz - ./data/seqr_static_files:/seqr_static_files ports: - 80:8000 environment: - SEQR_GIT_BRANCH=dev - PYTHONPATH=/seqr - STATIC_MEDIA_DIR=/seqr_static_files - POSTGRES_SERVICE_HOSTNAME=postgres - POSTGRES_SERVICE_PORT=5433 - POSTGRES_PASSWORD=docker-compose-postgres-password - ELASTICSEARCH_SERVICE_HOSTNAME=elasticsearch - REDIS_SERVICE_HOSTNAME=redis - KIBANA_SERVICE_HOSTNAME=kibana - PGHOST=postgres - PGPORT=5433 - PGUSER=postgres - GUNICORN_WORKER_THREADS=4 depends_on: postgres: condition: service_healthy elasticsearch: condition: service_healthy redis: condition: service_healthy healthcheck: test: bash -c "curl -s 'http://localhost:8000' | grep html" pipeline-runner: image: gcr.io/seqr-project/pipeline-runner:gcloud-prod volumes: - ./data/seqr-reference-data:/seqr-reference-data - ./data/vep_data:/vep_data - ./data/input_vcfs:/input_vcfs - ~/.config:/root/.config depends_on: elasticsearch: condition: service_healthy