From 5db372fcb5abf45f3a95545029e525a2a149a91c Mon Sep 17 00:00:00 2001 From: Antoine Lambert <antoine.lambert@inria.fr> Date: Tue, 16 Feb 2021 19:13:08 +0100 Subject: [PATCH] docker: Ensure journal client services will be up and running Services acting as journal clients were always exiting prematurely due to not created kafa topics they were trying to subscribe to. So ensure needed topics will be created when starting the kafka service and wait for their creation before starting the journal client services. As a consequence, this makes a call to "docker-compose up -d" command a little bit longer before it returns. --- docker/docker-compose.search.yml | 14 +++++++++----- docker/docker-compose.yml | 26 +++++++++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/docker/docker-compose.search.yml b/docker/docker-compose.search.yml index 6919467..cfeee8a 100644 --- a/docker/docker-compose.search.yml +++ b/docker/docker-compose.search.yml @@ -1,4 +1,4 @@ -version: '2' +version: "2" services: elasticsearch: @@ -29,8 +29,10 @@ services: build: ./ entrypoint: /entrypoint.sh depends_on: - - swh-search - - kafka + kafka: + condition: service_healthy + swh-search: + condition: service_started volumes: - "./conf/search_journal_client_objects.yml:/etc/softwareheritage/search/journal_client.yml:ro" - "./services/swh-search-journal-client/entrypoint.sh:/entrypoint.sh:ro" @@ -40,8 +42,10 @@ services: build: ./ entrypoint: /entrypoint.sh depends_on: - - swh-search - - kafka + kafka: + condition: service_healthy + swh-search: + condition: service_started volumes: - "./conf/search_journal_client_indexed.yml:/etc/softwareheritage/search/journal_client.yml:ro" - "./services/swh-search-journal-client/entrypoint.sh:/entrypoint.sh:ro" diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 55bdb40..58282f0 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -15,8 +15,18 @@ services: ports: - "5092:9092" env_file: ./env/kafka.env + environment: + KAFKA_CREATE_TOPICS: swh.journal.objects.origin:1:1, + swh.journal.objects.origin_visit:1:1, + swh.journal.objects.origin_visit_status:1:1, + swh.journal.indexed.origin_intrinsic_metadata:1:1 depends_on: - zookeeper + healthcheck: + test: "[ `JMX_PORT= kafka-topics.sh --list --zookeeper zookeeper:2181 | wc -l` -ge 4 ]" + interval: 10s + timeout: 5s + retries: 10 prometheus: image: prom/prometheus @@ -368,9 +378,13 @@ services: env_file: - ./env/common_python.env depends_on: - - kafka - - swh-storage - - swh-scheduler + kafka: + condition: service_healthy + swh-storage: + condition: service_started + swh-scheduler: + condition: service_started + volumes: - "./conf/indexer_journal_client.yml:/etc/softwareheritage/indexer/journal_client.yml:ro" - "./services/swh-indexer-journal-client/entrypoint.sh:/entrypoint.sh:ro" @@ -382,8 +396,10 @@ services: env_file: - ./env/common_python.env depends_on: - - kafka - - swh-scheduler + kafka: + condition: service_healthy + swh-scheduler: + condition: service_started volumes: - "./conf/scheduler_journal_client.yml:/etc/softwareheritage/scheduler/journal_client.yml:ro" - "./services/swh-scheduler-journal-client/entrypoint.sh:/entrypoint.sh:ro" -- GitLab