--- # Source: tidb-docker-compose/templates/docker-compose.yml # dashboard-installer has been deleted, because we don't need it any more in docker-compose model version: '2.1' services: pd0: image: pingcap/pd:latest ports: - "2379" volumes: - ./config/pd.toml:/pd.toml:ro - ./data:/data - ./logs:/logs command: - --name=pd0 - --client-urls=http://0.0.0.0:2379 - --peer-urls=http://0.0.0.0:2380 - --advertise-client-urls=http://pd0:2379 - --advertise-peer-urls=http://pd0:2380 - --initial-cluster=pd0=http://pd0:2380,pd1=http://pd1:2380,pd2=http://pd2:2380 - --data-dir=/data/pd0 - --config=/pd.toml - --log-file=/logs/pd0.log # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure pd1: image: pingcap/pd:latest ports: - "2379" volumes: - ./config/pd.toml:/pd.toml:ro - ./data:/data - ./logs:/logs command: - --name=pd1 - --client-urls=http://0.0.0.0:2379 - --peer-urls=http://0.0.0.0:2380 - --advertise-client-urls=http://pd1:2379 - --advertise-peer-urls=http://pd1:2380 - --initial-cluster=pd0=http://pd0:2380,pd1=http://pd1:2380,pd2=http://pd2:2380 - --data-dir=/data/pd1 - --config=/pd.toml - --log-file=/logs/pd1.log # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure pd2: image: pingcap/pd:latest ports: - "2379" volumes: - ./config/pd.toml:/pd.toml:ro - ./data:/data - ./logs:/logs command: - --name=pd2 - --client-urls=http://0.0.0.0:2379 - --peer-urls=http://0.0.0.0:2380 - --advertise-client-urls=http://pd2:2379 - --advertise-peer-urls=http://pd2:2380 - --initial-cluster=pd0=http://pd0:2380,pd1=http://pd1:2380,pd2=http://pd2:2380 - --data-dir=/data/pd2 - --config=/pd.toml - --log-file=/logs/pd2.log # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure tikv0: image: pingcap/tikv:latest volumes: - ./config/tikv.toml:/tikv.toml:ro - ./data:/data - ./logs:/logs command: - --addr=0.0.0.0:20160 - --advertise-addr=tikv0:20160 - --data-dir=/data/tikv0 - --pd=pd0:2379,pd1:2379,pd2:2379 - --config=/tikv.toml - --log-file=/logs/tikv0.log depends_on: - "pd0" - "pd1" - "pd2" # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure tikv1: image: pingcap/tikv:latest volumes: - ./config/tikv.toml:/tikv.toml:ro - ./data:/data - ./logs:/logs command: - --addr=0.0.0.0:20160 - --advertise-addr=tikv1:20160 - --data-dir=/data/tikv1 - --pd=pd0:2379,pd1:2379,pd2:2379 - --config=/tikv.toml - --log-file=/logs/tikv1.log depends_on: - "pd0" - "pd1" - "pd2" # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure tikv2: image: pingcap/tikv:latest volumes: - ./config/tikv.toml:/tikv.toml:ro - ./data:/data - ./logs:/logs command: - --addr=0.0.0.0:20160 - --advertise-addr=tikv2:20160 - --data-dir=/data/tikv2 - --pd=pd0:2379,pd1:2379,pd2:2379 - --config=/tikv.toml - --log-file=/logs/tikv2.log depends_on: - "pd0" - "pd1" - "pd2" # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure pump0: image: pingcap/tidb-binlog:latest volumes: - ./config/pump.toml:/pump.toml:ro - ./data:/data - ./logs:/logs command: - /pump - --addr=0.0.0.0:8250 - --advertise-addr=pump0:8250 - --data-dir=/data/pump0 - --log-file=/logs/pump0.log - --node-id=pump0 - --pd-urls=http://pd0:2379,http://pd1:2379,http://pd2:2379 - --config=/pump.toml depends_on: - "pd0" - "pd1" - "pd2" restart: on-failure pump1: image: pingcap/tidb-binlog:latest volumes: - ./config/pump.toml:/pump.toml:ro - ./data:/data - ./logs:/logs command: - /pump - --addr=0.0.0.0:8250 - --advertise-addr=pump1:8250 - --data-dir=/data/pump1 - --log-file=/logs/pump1.log - --node-id=pump1 - --pd-urls=http://pd0:2379,http://pd1:2379,http://pd2:2379 - --config=/pump.toml depends_on: - "pd0" - "pd1" - "pd2" restart: on-failure pump2: image: pingcap/tidb-binlog:latest volumes: - ./config/pump.toml:/pump.toml:ro - ./data:/data - ./logs:/logs command: - /pump - --addr=0.0.0.0:8250 - --advertise-addr=pump2:8250 - --data-dir=/data/pump2 - --log-file=/logs/pump2.log - --node-id=pump2 - --pd-urls=http://pd0:2379,http://pd1:2379,http://pd2:2379 - --config=/pump.toml depends_on: - "pd0" - "pd1" - "pd2" restart: on-failure drainer: image: pingcap/tidb-binlog:latest volumes: - ./config/drainer.toml:/drainer.toml:ro - ./data:/data - ./logs:/logs command: - /drainer - --addr=0.0.0.0:8249 - --data-dir=/data/data.drainer - --log-file=/logs/drainer.log - --pd-urls=http://pd0:2379,http://pd1:2379,http://pd2:2379 - --config=/drainer.toml - --initial-commit-ts=0 - --dest-db-type=kafka depends_on: - "pd0" - "pd1" - "pd2" - "kafka0" - "kafka1" - "kafka2" restart: on-failure zoo0: image: zookeeper:latest ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_PORT: 2181 ZOO_SERVERS: server.1=zoo0:2888:3888 server.2=zoo1:2888:3888 server.3=zoo2:2888:3888 volumes: - ./data/zoo0/data:/data - ./data/zoo0/datalog:/datalog restart: on-failure zoo1: image: zookeeper:latest ports: - "2182:2182" environment: ZOO_MY_ID: 2 ZOO_PORT: 2182 ZOO_SERVERS: server.1=zoo0:2888:3888 server.2=zoo1:2888:3888 server.3=zoo2:2888:3888 volumes: - ./data/zoo1/data:/data - ./data/zoo1/datalog:/datalog restart: on-failure zoo2: image: zookeeper:latest ports: - "2183:2183" environment: ZOO_MY_ID: 3 ZOO_PORT: 2183 ZOO_SERVERS: server.1=zoo0:2888:3888 server.2=zoo1:2888:3888 server.3=zoo2:2888:3888 volumes: - ./data/zoo2/data:/data - ./data/zoo2/datalog:/datalog restart: on-failure kafka0: image: wurstmeister/kafka:2.12-2.1.1 ports: - "9092:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_LOG_DIRS: /data/kafka-logs KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka0:9092 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_ZOOKEEPER_CONNECT: zoo0:2181,zoo1:2182,zoo2:2183 volumes: - ./data/kafka-logs/kafka0:/data/kafka-logs - ./logs/kafka0:/opt/kafka/logs - /var/run/docker.sock:/var/run/docker.sock depends_on: - "zoo0" - "zoo1" - "zoo2" restart: on-failure kafka1: image: wurstmeister/kafka:2.12-2.1.1 ports: - "9093:9093" environment: KAFKA_BROKER_ID: 2 KAFKA_LOG_DIRS: /data/kafka-logs KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9093 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9093 KAFKA_ZOOKEEPER_CONNECT: zoo0:2181,zoo1:2182,zoo2:2183 volumes: - ./data/kafka-logs/kafka1:/data/kafka-logs - ./logs/kafka1:/opt/kafka/logs - /var/run/docker.sock:/var/run/docker.sock depends_on: - "zoo0" - "zoo1" - "zoo2" restart: on-failure kafka2: image: wurstmeister/kafka:2.12-2.1.1 ports: - "9094:9094" environment: KAFKA_BROKER_ID: 3 KAFKA_LOG_DIRS: /data/kafka-logs KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9094 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9094 KAFKA_ZOOKEEPER_CONNECT: zoo0:2181,zoo1:2182,zoo2:2183 volumes: - ./data/kafka-logs/kafka2:/data/kafka-logs - ./logs/kafka2:/opt/kafka/logs - /var/run/docker.sock:/var/run/docker.sock depends_on: - "zoo0" - "zoo1" - "zoo2" restart: on-failure tidb: image: pingcap/tidb:latest ports: - "4000:4000" - "10080:10080" volumes: - ./config/tidb.toml:/tidb.toml:ro - ./logs:/logs command: - --store=tikv - --path=pd0:2379,pd1:2379,pd2:2379 - --config=/tidb.toml - --log-file=/logs/tidb.log - --advertise-address=tidb - --enable-binlog=true depends_on: - "tikv0" - "tikv1" - "tikv2" - "pump0" - "pump1" - "pump2" # sysctls: # net.core.somaxconn: 32768 # ulimits: # nofile: # soft: 1000000 # hard: 1000000 restart: on-failure tispark-master: image: pingcap/tispark:latest command: - /opt/spark/sbin/start-master.sh volumes: - ./config/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro environment: SPARK_MASTER_PORT: 7077 SPARK_MASTER_WEBUI_PORT: 8080 ports: - "7077:7077" - "8080:8080" depends_on: - "tikv0" - "tikv1" - "tikv2" restart: on-failure tispark-slave0: image: pingcap/tispark:latest command: - /opt/spark/sbin/start-slave.sh - spark://tispark-master:7077 volumes: - ./config/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro environment: SPARK_WORKER_WEBUI_PORT: 38081 ports: - "38081:38081" depends_on: - tispark-master restart: on-failure tidb-vision: image: pingcap/tidb-vision:latest environment: PD_ENDPOINT: pd0:2379 ports: - "8010:8010" restart: on-failure pushgateway: image: prom/pushgateway:v0.3.1 command: - --log.level=error restart: on-failure prometheus: user: root image: prom/prometheus:v2.2.1 command: - --log.level=error - --storage.tsdb.path=/data/prometheus - --config.file=/etc/prometheus/prometheus.yml ports: - "9090:9090" volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./config/pd.rules.yml:/etc/prometheus/pd.rules.yml:ro - ./config/tikv.rules.yml:/etc/prometheus/tikv.rules.yml:ro - ./config/tidb.rules.yml:/etc/prometheus/tidb.rules.yml:ro - ./data:/data restart: on-failure grafana: image: grafana/grafana:5.3.0 user: "0" environment: GF_LOG_LEVEL: error GF_PATHS_PROVISIONING: /etc/grafana/provisioning GF_PATHS_CONFIG: /etc/grafana/grafana.ini ports: - "3000:3000" volumes: - ./config/grafana:/etc/grafana - ./config/dashboards:/tmp/dashboards - ./data/grafana:/var/lib/grafana restart: on-failure