It's simple. You should use the service_completed_successfully condition, as in the snippet below:
version: '3.1'
services:
data_generator:
image: waitingforcode/data-generator-blogging-platform:0.2-beta
depends_on:
init-kafka:
condition: service_completed_successfully
volumes:
- ./generation_configuration.yaml:/home/data_generator_user/generation_configuration.yaml
entrypoint:
- python3
- /home/data_generator_user/data_generator/generate_dataset.py
- --config_file
- /home/data_generator_user/generation_configuration.yaml
kafka:
image: 'bitnami/kafka:3.5'
container_name: kafka_broker
# ...
init-kafka:
image: bitnami/kafka:3.5
container_name: kafka_topics_creator
depends_on:
kafka:
condition: service_healthy
entrypoint: [ '/bin/sh', '-c' ]
command: |
"
# blocks until kafka is reachable
kafka-topics.sh --bootstrap-server kafka:9092 --list
echo -e 'Creating Kafka topics'
kafka-topics.sh --bootstrap-server kafka:9092 --create --if-not-exists --topic visits --replication-factor 1 --partitions 2
kafka-topics.sh --bootstrap-server kafka:9092 --create --if-not-exists --topic visits_reduced --replication-factor 1 --partitions 2
kafka-topics.sh --bootstrap-server kafka:9092 --create --if-not-exists --topic visits_dlq --replication-factor 1 --partitions 2
echo -e 'Successfully created the following topics:'
kafka-topics.sh --bootstrap-server kafka:9092 --list
"