services: testrunner: image: $DEV_IMAGE_TAG environment: WORK_DIR: $PWD build: dockerfile: Dockerfile.dev context: . args: OTP_VERSION: $OTP_VERSION THRIFT_VERSION: $THRIFT_VERSION volumes: - .:$PWD hostname: progressor depends_on: kafka1: condition: service_healthy kafka2: condition: service_healthy kafka3: condition: service_healthy postgres: condition: service_healthy working_dir: $PWD postgres: image: postgres:15-bookworm environment: POSTGRES_DB: "progressor_db" POSTGRES_USER: "progressor" POSTGRES_PASSWORD: "progressor" PGDATA: "/tmp/postgresql/data/pgdata" volumes: - progressor-data:/tmp/postgresql/data ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U progressor -d progressor_db"] interval: 10s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped deploy: resources: limits: cpus: '2' memory: 4G zookeeper: image: docker.io/confluentinc/cp-zookeeper:${CONFLUENT_PLATFORM_VERSION} healthcheck: test: echo ruok | nc 127.0.0.1 2181 || exit -1 interval: 5s timeout: 240s #🍎 retries: 50 environment: KAFKA_OPTS: "-Dzookeeper.4lw.commands.whitelist=ruok" ZOOKEEPER_CLIENT_PORT: 2181 kafka1: &kafka-broker image: docker.io/confluentinc/cp-kafka:${CONFLUENT_PLATFORM_VERSION} depends_on: - zookeeper healthcheck: test: ["CMD", "kafka-topics", "--list", "--zookeeper", "zookeeper:2181"] interval: 5s timeout: 10s retries: 5 environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092 kafka2: <<: *kafka-broker environment: KAFKA_BROKER_ID: 2 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092 kafka3: <<: *kafka-broker environment: KAFKA_BROKER_ID: 3 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka3:9092 volumes: progressor-data: