version: '3.7' services: # Redpanda cluster redpanda-1: image: docker.redpanda.com/redpandadata/redpanda:v24.2.2 container_name: redpanda-1 command: - redpanda - start - --smp - '1' - --reserve-memory - 0M - --overprovisioned - --node-id - '1' - --kafka-addr - PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092 - --advertise-kafka-addr - PLAINTEXT://redpanda-1:29092,OUTSIDE://localhost:9092 - --pandaproxy-addr - PLAINTEXT://0.0.0.0:28082,OUTSIDE://0.0.0.0:8082 - --advertise-pandaproxy-addr - PLAINTEXT://redpanda-1:28082,OUTSIDE://localhost:8082 - --rpc-addr - 0.0.0.0:33145 - --advertise-rpc-addr - redpanda-1:33145 ports: - 8081:8081 - 8082:8082 - 9092:9092 - 28082:28082 - 29092:29092 kafka-connect: container_name: kafka-connect build: context: . dockerfile: Dockerfile depends_on: - redpanda-1 ports: - "8083:8083" environment: BOOTSTRAP_SERVERS: redpanda-1:29092 GROUP_ID: kafka-connect-group CONFIG_STORAGE_TOPIC: connect-configs OFFSET_STORAGE_TOPIC: connect-offsets STATUS_STORAGE_TOPIC: connect-status KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter KEY_CONVERTER_SCHEMAS_ENABLE: "false" VALUE_CONVERTER_SCHEMAS_ENABLE: "false" INTERNAL_KEY_CONVERTER_SCHEMAS_ENABLE: "false" INTERNAL_VALUE_CONVERTER_SCHEMAS_ENABLE: "false" CONNECT_REST_PORT: 8083 volumes: - /var/run/docker.sock:/var/run/docker.sock redpanda-console: image: docker.redpanda.com/redpandadata/console:v2.1.1 container_name: redpanda-console entrypoint: /bin/sh command: -c "echo \"$$CONSOLE_CONFIG_FILE\" > /tmp/config.yml; /app/console" environment: CONFIG_FILEPATH: /tmp/config.yml CONSOLE_CONFIG_FILE: | kafka: brokers: ["redpanda-1:29092"] schemaRegistry: enabled: true urls: ["http://redpanda-1:8081"] redpanda: adminApi: enabled: true urls: ["http://redpanda-1:9644"] connect: enabled: true clusters: - name: demo url: http://kafka-connect:8083 # No auth configured on that cluster, hence no username/password set ports: - 8080:8080 depends_on: - redpanda-1 - kafka-connect postgres: image: postgres:15.3-alpine3.18 container_name: postgres ports: - "5432:5432" environment: POSTGRES_PASSWORD: secret POSTGRES_USER: root POSTGRES_DB: root command: - "postgres" - "-c" - "wal_level=logical" volumes: - ./files/postgres:/docker-entrypoint-initdb.d mysql: image: mysql:8.0 container_name: mysql restart: always environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: public MYSQL_USER: connect MYSQL_PASSWORD: secret ports: - '3306:3306' volumes: - ./files/mysql:/docker-entrypoint-initdb.d