services: redis-master: container_name: redis-master image: ${SERVER_IMAGE} network_mode: host command: > sh -c 'chmod 777 /tmp/redis-socks && redis-server \ --replica-announce-ip localhost \ --port 6379 \ --tls-port 16379 \ --tls-cert-file /docker/tls/server.crt \ --tls-key-file /docker/tls/server.key \ --tls-ca-cert-file /docker/tls/ca.crt \ --tls-auth-clients no \ --unixsocket /tmp/redis-socks/redis.sock \ --unixsocketperm 777' volumes: - ./docker:/docker - /tmp/redis-socks:/tmp/redis-socks redis-replica-1: container_name: redis-replica-1 image: ${SERVER_IMAGE} network_mode: host command: [ "redis-server", "--replica-announce-ip", "localhost", "--replicaof", "localhost", "6379", "--port", "6380", "--tls-port", "16380", "--tls-cert-file", "/docker/tls/server.crt", "--tls-key-file", "/docker/tls/server.key", "--tls-ca-cert-file", "/docker/tls/ca.crt", "--tls-auth-clients", "no", ] volumes: - ./docker:/docker redis-replica-2: container_name: redis-replica-2 image: ${SERVER_IMAGE} network_mode: host command: [ "redis-server", "--replica-announce-ip", "localhost", "--replicaof", "localhost", "6379", "--port", "6381", "--tls-port", "16381", "--tls-cert-file", "/docker/tls/server.crt", "--tls-key-file", "/docker/tls/server.key", "--tls-ca-cert-file", "/docker/tls/ca.crt", "--tls-auth-clients", "no", ] volumes: - ./docker:/docker sentinel-1: container_name: sentinel-1 image: ${SERVER_IMAGE} network_mode: host command: > sh -c 'cat << EOF > /etc/sentinel.conf && redis-sentinel /etc/sentinel.conf port 26379 tls-port 36379 tls-cert-file /docker/tls/server.crt tls-key-file /docker/tls/server.key tls-ca-cert-file /docker/tls/ca.crt tls-auth-clients no sentinel resolve-hostnames yes sentinel announce-hostnames yes sentinel announce-ip localhost sentinel monitor mymaster localhost 6379 2 sentinel down-after-milliseconds mymaster 10000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 EOF' volumes: - ./docker:/docker sentinel-2: container_name: sentinel-2 image: ${SERVER_IMAGE} network_mode: host command: > sh -c 'cat << EOF > /etc/sentinel.conf && redis-sentinel /etc/sentinel.conf port 26380 tls-port 36380 tls-cert-file /docker/tls/server.crt tls-key-file /docker/tls/server.key tls-ca-cert-file /docker/tls/ca.crt tls-auth-clients no sentinel resolve-hostnames yes sentinel announce-hostnames yes sentinel announce-ip localhost sentinel monitor mymaster localhost 6379 2 sentinel down-after-milliseconds mymaster 10000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 EOF' volumes: - ./docker:/docker sentinel-3: container_name: sentinel-3 image: ${SERVER_IMAGE} network_mode: host command: > sh -c 'cat << EOF > /etc/sentinel.conf && redis-sentinel /etc/sentinel.conf port 26381 tls-port 36381 tls-cert-file /docker/tls/server.crt tls-key-file /docker/tls/server.key tls-ca-cert-file /docker/tls/ca.crt tls-auth-clients no sentinel resolve-hostnames yes sentinel announce-hostnames yes sentinel announce-ip localhost sentinel monitor mymaster localhost 6379 2 sentinel down-after-milliseconds mymaster 10000 sentinel failover-timeout mymaster 10000 sentinel parallel-syncs mymaster 1 EOF' volumes: - ./docker:/docker builder: container_name: builder image: ${BUILDER_IMAGE} network_mode: host tty: true volumes: - ../:/boost-redis - /tmp/redis-socks:/tmp/redis-socks