version: '3.8'
services:
redis-master:
image: redis:latest
container_name: redis-master
ports:
- "16379:6379"
volumes:
- ./configs/redis-master.conf:/usr/local/etc/redis/redis.conf
- redis-master-data:/data
command: redis-server /usr/local/etc/redis/redis.conf
networks:
redis-sentinel:
ipv4_address: 172.25.0.2
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
timeout: 3s
retries: 5
redis-slave1:
image: redis:latest
container_name: redis-slave1
ports:
- "26385:6379"
volumes:
- ./configs/redis-slave1.conf:/usr/local/etc/redis/redis.conf
- redis-slave1-data:/data
command: redis-server /usr/local/etc/redis/redis.conf
depends_on:
- redis-master
networks:
redis-sentinel:
ipv4_address: 172.25.0.3
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
timeout: 3s
retries: 5
redis-slave2:
image: redis:latest
container_name: redis-slave2
ports:
- "26386:6379"
volumes:
- ./configs/redis-slave2.conf:/usr/local/etc/redis/redis.conf
- redis-slave2-data:/data
command: redis-server /usr/local/etc/redis/redis.conf
depends_on:
- redis-master
networks:
redis-sentinel:
ipv4_address: 172.25.0.4
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
timeout: 3s
retries: 5
redis-sentinel1:
image: redis:latest
container_name: redis-sentinel1
ports:
- "26382:26379"
volumes:
- ./configs/redis-sentinel1.conf:/usr/local/etc/redis/sentinel.conf
- sentinel1-data:/data
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
depends_on:
- redis-master
- redis-slave1
- redis-slave2
networks:
redis-sentinel:
ipv4_address: 172.25.0.10
redis-sentinel2:
image: redis:latest
container_name: redis-sentinel2
ports:
- "26383:26379"
volumes:
- ./configs/redis-sentinel2.conf:/usr/local/etc/redis/sentinel.conf
- sentinel2-data:/data
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
depends_on:
- redis-master
- redis-slave1
- redis-slave2
networks:
redis-sentinel:
ipv4_address: 172.25.0.11
redis-sentinel3:
image: redis:latest
container_name: redis-sentinel3
ports:
- "26384:26379"
volumes:
- ./configs/redis-sentinel3.conf:/usr/local/etc/redis/sentinel.conf
- sentinel3-data:/data
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
depends_on:
- redis-master
- redis-slave1
- redis-slave2
networks:
redis-sentinel:
ipv4_address: 172.25.0.12
networks:
redis-sentinel:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/24
volumes:
redis-master-data:
redis-slave1-data:
redis-slave2-data:
sentinel1-data:
sentinel2-data:
sentinel3-data: