version: '3.3' networks: default: driver: overlay attachable: true 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 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 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 tikv: image: pingcap/tikv:latest ports: - target: 20160 published: 20160 environment: - TASK_SLOT={{.Task.Slot}} volumes: - ./config/tikv.toml:/tikv.toml:ro - ./data:/data - ./logs:/logs entrypoint: [ "/bin/sh", "-c", "/tikv-server --advertise-addr=$$HOSTNAME:20160 --addr=0.0.0.0:20160 --data-dir=/data/tikv$$TASK_SLOT --pd=pd0:2379,pd1:2379,pd2:2379 --config=/tikv.toml --log-file=/logs/tikv$$TASK_SLOT.log --log-level=info" ] depends_on: - "pd0" - "pd1" - "pd2" deploy: replicas: 3 restart_policy: condition: on-failure tidb: image: pingcap/tidb:latest ports: - target: 4000 published: 4000 - target: 10080 published: 10080 environment: - TASK_SLOT={{.Task.Slot}} volumes: - ./config/tidb.toml:/tidb.toml:ro - ./logs:/logs entrypoint: [ "/bin/sh", "-c", "/tidb-server --advertise-address=$$HOSTNAME --store=tikv --path=pd0:2379,pd1:2379,pd2:2379 --config=/tidb.toml --log-file=/logs/tidb$$TASK_SLOT.log -L info" ] depends_on: - "tikv" deploy: replicas: 1 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: - "tikv" deploy: replicas: 1 tispark-slave: 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 deploy: replicas: 1 tidb-vision: image: pingcap/tidb-vision:latest environment: PD_ENDPOINT: pd0:2379 ports: - "8010:8010" # monitors pushgateway: image: prom/pushgateway:v0.3.1 command: - --log.level=error 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 grafana: image: grafana/grafana:6.0.1 environment: GF_LOG_LEVEL: error GF_PATHS_PROVISIONING: /etc/grafana/provisioning GF_PATHS_CONFIG: /etc/grafana/grafana.ini volumes: - ./config/grafana:/etc/grafana - ./config/dashboards:/var/lib/grafana/dashboards ports: - "3000:3000"