services: # ActiveMQ image for collectd-activemq test: activemq: image: quay.io/splunko11ytest/activemq:latest profiles: - smartagent build: ./activemq ports: - "1099:1099" # Apache image for collectd-apache test apache: image: quay.io/splunko11ytest/apache:latest profiles: - smartagent - integration-test-apache-discovery build: ./apache ports: - "18080:80" apachespark: image: quay.io/splunko11ytest/apachespark:latest profiles: - integration build: ./apachespark ports: - "4040:4040" # Cassandra image for collectd-cassandra test: cassandra: image: quay.io/splunko11ytest/cassandra:latest profiles: - integration - smartagent build: ./cassandra ports: - "7199:7199" # Cassandra without auth cassandra-jmx-noauth: profiles: - cassandra - integration-test-jmx/cassandra-discovery build: dockerfile_inline: | FROM cassandra:5 ENV LOCAL_JMX=no RUN sed -ri 's/ -Dcom\.sun\.management\.jmxremote\.authenticate=true/ -Dcom\.sun\.management\.jmxremote\.authenticate=false/' /etc/cassandra/cassandra-env.sh RUN sed -ri 's/ -Dcom\.sun\.management\.jmxremote\.password\.file=\/etc\/cassandra\/jmxremote\.password//' /etc/cassandra/cassandra-env.sh # Escape $JVM_OPTS by including extra $ # This command prepends content to /etc/cassandra/cassandra-env.sh RUN echo "`echo 'JVM_OPTS="$$JVM_OPTS -Djava.rmi.server.hostname=0.0.0.0"'; echo 'export LOCAL_JMX="no"'; cat /etc/cassandra/cassandra-env.sh`" > /etc/cassandra/cassandra-env.sh environment: LOCAL_JMX: no JVM_EXTRA_OPTS: "-Dcom.sun.management.jmxremote.authenticate=false" JMX_PORT: "${JMX_PORT:-7199}" ports: - "${JMX_PORT:-7199}:${JMX_PORT:-7199}" healthcheck: interval: 10s timeout: 10s retries: 20 test: - "CMD" - "grep" - "-q" - "Startup complete" - "/var/log/cassandra/system.log" # Couchbase image for collectd-couchbase test: couchbase: image: quay.io/splunko11ytest/couchbase:latest profiles: - smartagent build: ./couchbase ports: - "8091:8091" # Elasticsearch image for Elasticsearch test: elasticsearch: image: quay.io/splunko11ytest/elasticsearch:latest build: ./elasticsearch ports: - "9200:9200" profiles: - integration environment: - ELASTIC_PASSWORD=$ELASTIC_PASSWORD envoy: image: quay.io/splunko11ytest/envoy:latest profiles: - integration-test-envoy-discovery build: ./envoy ports: - "9901:9901" # Haproxy image for haproxy test: haproxy: image: quay.io/splunko11ytest/haproxy:latest profiles: - integration - smartagent build: ./haproxy ports: - "8082:8080" # httpd image for prometheus-exporter test httpd: image: quay.io/splunko11ytest/httpd:latest profiles: - smartagent build: ./httpd ports: - "8000:80" # httpd_basicauth image for lightprometheus test httpd_basicauth: image: quay.io/splunko11ytest/httpd_basicauth:latest profiles: - integration - smartagent build: ./httpd_basicauth ports: - "8001:80" # new-style kafka kafka-kraft-single: image: apache/kafka:3.7.0 # following configuration is taken DIRECTLY from # kafka examples in the upstream apache (licensed + hosted) repo # Thanks all from the Kafka team! # https://github.com/apache/kafka/blob/3.7.0/docker/examples/jvm/single-node/plaintext/docker-compose.yml hostname: broker container_name: broker ports: - '9092:9092' environment: KAFKA_NODE_ID: 1 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT' KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT_HOST://localhost:9092,PLAINTEXT://broker:19092' KAFKA_PROCESS_ROLES: 'broker,controller' KAFKA_CONTROLLER_QUORUM_VOTERS: '1@broker:29093' KAFKA_LISTENERS: 'CONTROLLER://:29093,PLAINTEXT_HOST://:9092,PLAINTEXT://:19092' KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT' KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER' CLUSTER_ID: '4L6g3nShT-eMCtK--X86sw' KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs' profiles: - integration-test-kafkametrics-discovery kafka-broker: image: quay.io/splunko11ytest/kafka:latest depends_on: - zookeeper profiles: - smartagent build: ./kafka environment: START_AS: broker KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 JMX_PORT: 7099 ports: - "7099:7099" - "9092:9092" healthcheck: test: [ "CMD", "bash", "-c", "exec 6<> /dev/tcp/localhost/7099" ] interval: 10s timeout: 5s retries: 5 kafka-consumer: image: quay.io/splunko11ytest/kafka:latest depends_on: - zookeeper profiles: - smartagent build: ./kafka environment: START_AS: consumer KAFKA_BROKER: kafka-broker:9092 JMX_PORT: 9099 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ports: - "9099:9099" healthcheck: test: [ "CMD", "bash", "-c", "exec 6<> /dev/tcp/localhost/9099" ] interval: 10s timeout: 5s retries: 5 kafka-producer: image: quay.io/splunko11ytest/kafka:latest depends_on: - zookeeper profiles: - smartagent build: ./kafka environment: START_AS: producer KAFKA_BROKER: kafka-broker:9092 JMX_PORT: 8099 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ports: - "8099:8099" healthcheck: test: [ "CMD", "bash", "-c", "exec 6<> /dev/tcp/localhost/8099" ] interval: 10s timeout: 5s retries: 5 kafka-topic-creator: image: quay.io/splunko11ytest/kafka:latest depends_on: - zookeeper profiles: - smartagent build: ./kafka environment: START_AS: create-topic KAFKA_BROKER: kafka-broker:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 kong: image: quay.io/splunko11ytest/kong:latest profiles: - integration build: ./kong ports: - "18001:8001" mongodb: image: quay.io/splunko11ytest/mongodb:latest profiles: - integration-test-mongodb-discovery build: context: ./mongodb args: MONGODB_VERSION: ${MONGODB_VERSION} ports: - "27017:27017" mysql: image: quay.io/splunko11ytest/mysql:latest profiles: - integration - smartagent - integration-test-mysql-discovery build: ./mysql ports: - "3306:3306" nginx: image: quay.io/splunko11ytest/nginx:latest profiles: - integration - integration-test-nginx-discovery - smartagent build: ./nginx ports: - "8123:80" oracle: image: quay.io/splunko11ytest/oracle:latest profiles: - integration - integration-test-oracledb-discovery build: ./oracle ports: - "1521:1521" postgres: image: quay.io/splunko11ytest/postgres:latest profiles: - integration build: ./postgres ports: - "15432:5432" redis_server: image: quay.io/splunko11ytest/redis_server:latest profiles: - integration - integration-test-redis-discovery build: ./redis_server ports: - "6379:6379" solr: image: quay.io/splunko11ytest/solr:latest profiles: - smartagent build: ./solr ports: - "8983:8983" # Tomcat image for collectd-tomcat test: tomcat: image: tomcat:10 profiles: - smartagent environment: JAVA_TOOL_OPTIONS: "-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.rmi.port=5000 -Dcom.sun.management.jmxremote.host=0.0.0.0 -Djava.rmi.server.hostname=0.0.0.0" ports: - "5000:5000" # Kafka test, requires multiple Kafka containers and Zookeeper: zookeeper: image: zookeeper:3.5 profiles: - smartagent ports: - "2181:2181" healthcheck: test: [ "CMD", "bash", "-c", "exec 6<> /dev/tcp/localhost/2181" ] interval: 10s timeout: 5s retries: 5