├── README.md ├── conduktor ├── docker-compose.yml ├── jmx-exporter.yml ├── launch.sh └── platform-config.yaml ├── dgraph └── docker-compose.yml ├── kafka └── docker-compose.yml ├── localstack └── docker-compose.yml ├── mongodb-replica-sets ├── docker-compose.yml ├── mongo-initdb.d │ └── mongo_setup.sh └── mongo_setup.sh ├── mongodb └── docker-compose.yml └── postgres └── docker-compose.yml /README.md: -------------------------------------------------------------------------------- 1 | # awesome-docker-compose 2 | -------------------------------------------------------------------------------- /conduktor/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | 3 | services: 4 | zookeeper: 5 | image: zookeeper:3.8 6 | ports: 7 | - "2181:2181" 8 | volumes: 9 | - "zookeeper_data:/data" 10 | - "zookeeper_datalog:/datalog" 11 | 12 | kafka: 13 | image: conduktor/kafka:3.3.1 14 | hostname: kafka 15 | ports: 16 | - "9092:9092" 17 | - "9093:9093" 18 | - "9100:9100" 19 | volumes: 20 | - "kafka_data:/conduktor" 21 | - type: bind 22 | source: ./jmx-exporter.yml 23 | target: /etc/jmx-exporter.yml 24 | read_only: true 25 | environment: 26 | - KAFKA_CFG_BROKER_ID=1 27 | - KAFKA_CFG_CLUSTER_ID=8FQcz7Y_RHiFpZDygDb7dw 28 | - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 29 | - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,DOCKER://:9093 30 | - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,DOCKER://kafka:9093 31 | - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,DOCKER:PLAINTEXT 32 | - KAFKA_CFG_AUTHORIZER_CLASS_NAME=kafka.security.authorizer.AclAuthorizer 33 | - KAFKA_CFG_ALLOW_EVERYONE_IF_NO_ACL_FOUND=true 34 | - ALLOW_PLAINTEXT_LISTENER=yes 35 | - JMX_EXPORTER_ENABLE=yes 36 | - JMX_EXPORTER_PORT=9101 37 | - JMX_EXPORTER_CONFIG=/etc/jmx-exporter.yml 38 | depends_on: 39 | - zookeeper 40 | 41 | schema-registry: 42 | image: confluentinc/cp-schema-registry:7.2.1 43 | hostname: schema-registry 44 | ports: 45 | - "8081:8081" 46 | environment: 47 | SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: PLAINTEXT://kafka:9093 48 | SCHEMA_REGISTRY_HOST_NAME: schema-registry 49 | SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 50 | depends_on: 51 | - zookeeper 52 | - kafka 53 | 54 | volumes: 55 | zookeeper_data: {} 56 | zookeeper_datalog: {} 57 | kafka_data: {} 58 | conduktor_data: {} -------------------------------------------------------------------------------- /conduktor/jmx-exporter.yml: -------------------------------------------------------------------------------- 1 | lowercaseOutputName: true 2 | lowercaseOutputLabelNames: true 3 | rules: 4 | # Special cases and very specific rules 5 | - pattern : kafka.server<>Value 6 | name: kafka_server_$1_$2 7 | type: GAUGE 8 | labels: 9 | clientId: "$3" 10 | topic: "$4" 11 | partition: "$5" 12 | - pattern : kafka.server<>Value 13 | name: kafka_server_$1_$2 14 | type: GAUGE 15 | labels: 16 | clientId: "$3" 17 | broker: "$4:$5" 18 | 19 | - pattern : kafka.server<>OneMinuteRate 20 | name: kafka_server_kafkarequesthandlerpool_requesthandleravgidlepercent_total 21 | type: GAUGE 22 | 23 | - pattern : kafka.server<>connections 24 | name: kafka_server_socketservermetrics_connections 25 | type: GAUGE 26 | labels: 27 | client_software_name: "$1" 28 | client_software_version: "$2" 29 | listener: "$3" 30 | network_processor: "$4" 31 | 32 | - pattern : 'kafka.server<>(.+):' 33 | name: kafka_server_socketservermetrics_$3 34 | type: GAUGE 35 | labels: 36 | listener: "$1" 37 | network_processor: "$2" 38 | 39 | # Count and Value 40 | - pattern: kafka.(.+)<>(Count|Value) 41 | name: kafka_$1_$2_$3 42 | labels: 43 | "$4": "$5" 44 | "$6": "$7" 45 | - pattern: kafka.(.+)<>(Count|Value) 46 | name: kafka_$1_$2_$3 47 | labels: 48 | "$4": "$5" 49 | - pattern: kafka.(.+)<>(Count|Value) 50 | name: kafka_$1_$2_$3 51 | 52 | # Percentile 53 | - pattern: kafka.(.+)<>(\d+)thPercentile 54 | name: kafka_$1_$2_$3 55 | type: GAUGE 56 | labels: 57 | "$4": "$5" 58 | "$6": "$7" 59 | quantile: "0.$8" 60 | - pattern: kafka.(.+)<>(\d+)thPercentile 61 | name: kafka_$1_$2_$3 62 | type: GAUGE 63 | labels: 64 | "$4": "$5" 65 | quantile: "0.$6" 66 | - pattern: kafka.(.+)<>(\d+)thPercentile 67 | name: kafka_$1_$2_$3 68 | type: GAUGE 69 | labels: 70 | quantile: "0.$4" 71 | -------------------------------------------------------------------------------- /conduktor/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | docker-compose up -d 4 | 5 | docker run --rm \ 6 | -p "8080:8080" --pull=always \ 7 | --mount "type=bind,source=$PWD/platform-config.yaml,target=/opt/conduktor/default-platform-config.yaml" \ 8 | conduktor/conduktor-platform:latest -------------------------------------------------------------------------------- /conduktor/platform-config.yaml: -------------------------------------------------------------------------------- 1 | organization: 2 | name: default 3 | 4 | clusters: 5 | - id: my-kafka-cluster 6 | name: My Kafka Cluster 7 | bootstrapServers: "0.0.0.0:9092" 8 | properties: | 9 | security.protocol=SASL_SSL 10 | sasl.mechanism=PLAIN 11 | sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='username' password='password'; 12 | schemaRegistry: 13 | id: my-schema-registry 14 | url: "http://0.0.0.0:8081" 15 | security: 16 | username: "username" 17 | password: "password" 18 | 19 | auth: 20 | demo-users: 21 | - email: admin@conduktor.io 22 | password: admin -------------------------------------------------------------------------------- /dgraph/docker-compose.yml: -------------------------------------------------------------------------------- 1 | # This Docker Compose file can be used to quickly bootup Dgraph Zero 2 | # and Alpha in different Docker containers. 3 | 4 | # It mounts /tmp/data on the host machine to /dgraph within the 5 | # container. You can change /tmp/data to a more appropriate location. 6 | # Run `docker-compose up` to start Dgraph. 7 | 8 | version: "3.2" 9 | services: 10 | zero: 11 | image: dgraph/dgraph:latest 12 | volumes: 13 | - /tmp/data:/dgraph 14 | ports: 15 | - 5080:5080 16 | - 6080:6080 17 | restart: on-failure 18 | command: dgraph zero --my=zero:5080 19 | alpha: 20 | image: dgraph/dgraph:latest 21 | volumes: 22 | - /tmp/data:/dgraph 23 | ports: 24 | - 8080:8080 25 | - 9080:9080 26 | restart: on-failure 27 | # Warning: this will whitelist 0.0.0.0/0 which is not appropriate for production 28 | # Docs: https://dgraph.io/docs/deploy/dgraph-administration/#whitelisting-admin-operations 29 | command: dgraph alpha --my=alpha:7080 --lru_mb=2048 --zero=zero:5080 --whitelist 0.0.0.0/0 30 | ratel: 31 | image: dgraph/dgraph:latest 32 | ports: 33 | - 8000:8000 34 | command: dgraph-ratel -------------------------------------------------------------------------------- /kafka/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | zookeeper: 5 | image: wurstmeister/zookeeper 6 | kafka: 7 | image: wurstmeister/kafka 8 | ports: 9 | - "9092:9092" 10 | environment: 11 | KAFKA_ADVERTISED_HOST_NAME: localhost 12 | KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 13 | -------------------------------------------------------------------------------- /localstack/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | localstack: 5 | container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}" 6 | image: localstack/localstack 7 | network_mode: bridge 8 | ports: 9 | - "4566:4566" 10 | - "4571:4571" 11 | - "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}" 12 | environment: 13 | - SERVICES=${SERVICES- } 14 | - DEBUG=${DEBUG- } 15 | - DATA_DIR=${DATA_DIR- } 16 | - PORT_WEB_UI=${PORT_WEB_UI- } 17 | - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- } 18 | - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- } 19 | - DOCKER_HOST=unix:///var/run/docker.sock 20 | - HOST_TMP_FOLDER=${TMPDIR} 21 | volumes: 22 | - "${TMPDIR:-/tmp/localstack}:/tmp/localstack" 23 | - "/var/run/docker.sock:/var/run/docker.sock" 24 | -------------------------------------------------------------------------------- /mongodb-replica-sets/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | mongo: 4 | hostname: mongo 5 | container_name: localmongo1 6 | image: mongo:latest 7 | ports: 8 | - 27017:27017 9 | restart: always 10 | entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ] 11 | 12 | mongosetup: 13 | image: mongo:latest 14 | depends_on: 15 | - mongo 16 | volumes: 17 | - ./mongo-initdb.d:/docker-entrypoint-initdb.d 18 | restart: "no" -------------------------------------------------------------------------------- /mongodb-replica-sets/mongo-initdb.d/mongo_setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "sleeping for 10 seconds" 3 | sleep 10 4 | 5 | echo mongo_setup.sh time now: `date +"%T" ` 6 | mongo --host mongo:27017 <