How to start one Docker container after the completion of another one?

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
  	"