version: '3.8' networks: default: name: ${NAMESPACE} external: true services: master: image: 'bitnami/redis:7.0.11' environment: - TZ=Asia/Shanghai - REDIS_REPLICATION_MODE=master - REDIS_PASSWORD=${REDIS_PASSWORD} ports: - '${NODE_PORT}:6379' volumes: - data_master:/bitnami deploy: update_config: order: start-first placement: constraints: - node.labels.${NAMESPACE}_redis_master==1 slave: image: 'bitnami/redis:7.0.11' environment: - TZ=Asia/Shanghai - REDIS_REPLICATION_MODE=slave - REDIS_MASTER_HOST=${NAMESPACE}_redis_master - REDIS_MASTER_PASSWORD=${REDIS_PASSWORD} - REDIS_PASSWORD=${REDIS_PASSWORD} depends_on: - master volumes: - data_slave:/bitnami deploy: update_config: order: start-first placement: constraints: - node.labels.${NAMESPACE}_redis_slave==1 redis-sentinel: image: 'bitnami/redis-sentinel:7.0.11' environment: - TZ=Asia/Shanghai - REDIS_MASTER_HOST=${NAMESPACE}_redis_master - REDIS_MASTER_PASSWORD=${REDIS_PASSWORD} - REDIS_SENTINEL_PASSWORD=${REDIS_SENTINEL_PASSWORD} depends_on: - master - slave deploy: update_config: order: start-first mode: replicated replicas: 3 # replicas模式, 副本数目为1 placement: constraints: - node.labels.${NAMESPACE}_redis_sentinel==1 volumes: - data_sentinel:/bitnami volumes: data_sentinel: driver: local data_master: driver: local data_slave: driver: local