mirror of
				https://github.com/EchoVault/SugarDB.git
				synced 2025-11-01 11:52:47 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			289 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			289 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| version: '3.8'
 | |
| 
 | |
| networks:
 | |
|   testnet:
 | |
|     driver: bridge
 | |
| 
 | |
| services:
 | |
|   standalone_node:
 | |
|     container_name: standalone_node
 | |
|     build:
 | |
|       context: .
 | |
|       dockerfile: Dockerfile.dev
 | |
|     environment:
 | |
|       - PORT=7480
 | |
|       - RAFT_PORT=8000
 | |
|       - ML_PORT=7946
 | |
|       - SERVER_ID=1
 | |
|       - PLUGIN_DIR=/usr/local/lib/echovault
 | |
|       - DATA_DIR=/var/lib/echovault
 | |
|       - IN_MEMORY=false
 | |
|       - TLS=false
 | |
|       - MTLS=false
 | |
|       - BOOTSTRAP_CLUSTER=false
 | |
|       - ACL_CONFIG=/etc/echovault/config/acl.yml
 | |
|       - REQUIRE_PASS=false
 | |
|       - PASSWORD=password1
 | |
|       - FORWARD_COMMAND=false
 | |
|       - SNAPSHOT_THRESHOLD=1000
 | |
|       - SNAPSHOT_INTERVAL=5m30s
 | |
|       - RESTORE_SNAPSHOT=true
 | |
|       - RESTORE_AOF=false
 | |
|       - AOF_SYNC_STRATEGY=everysec
 | |
|       - MAX_MEMORY=2000kb
 | |
|       - EVICTION_POLICY=noeviction
 | |
|       - EVICTION_SAMPLE=20
 | |
|       - EVICTION_INTERVAL=100ms
 | |
|       # List of echovault cert/key pairs
 | |
|       - CERT_KEY_PAIR_1=/etc/ssl/certs/echovault/echovault/server1.crt,/etc/ssl/certs/echovault/echovault/server1.key
 | |
|       - CERT_KEY_PAIR_2=/etc/ssl/certs/echovault/echovault/server2.crt,/etc/ssl/certs/echovault/echovault/server2.key
 | |
|       # List of client certificate authorities
 | |
|       - CLIENT_CA_1=/etc/ssl/certs/echovault/client/rootCA.crt
 | |
|       # List of shared object plugins to load on startup
 | |
|       - MODULE_1=/lib/echovault/modules/module_set/module_set.so
 | |
|       - MODULE_2=/lib/echovault/modules/module_get/module_get.so
 | |
|     ports:
 | |
|       - "7480:7480"
 | |
|       - "7946:7946"
 | |
|       - "7999:8000"
 | |
|     volumes:
 | |
|       - ./volumes/config:/etc/echovault/config
 | |
|       - ./volumes/modules:/lib/echovault/modules
 | |
|       - ./volumes/nodes/standalone_node:/var/lib/echovault
 | |
|     networks:
 | |
|       - testnet
 | |
| 
 | |
|   cluster_node_1:
 | |
|     container_name: cluster_node_1
 | |
|     build:
 | |
|       context: .
 | |
|       dockerfile: Dockerfile.dev
 | |
|     environment:
 | |
|       - PORT=7480
 | |
|       - RAFT_PORT=8000
 | |
|       - ML_PORT=7946
 | |
|       - SERVER_ID=1
 | |
|       - JOIN_ADDR=2/cluster_node_2:7946
 | |
|       - DATA_DIR=/var/lib/echovault
 | |
|       - IN_MEMORY=true
 | |
|       - TLS=false
 | |
|       - MTLS=false
 | |
|       - BOOTSTRAP_CLUSTER=true
 | |
|       - ACL_CONFIG=/etc/echovault/config/acl.yml
 | |
|       - REQUIRE_PASS=false
 | |
|       - FORWARD_COMMAND=true
 | |
|       - SNAPSHOT_THRESHOLD=1000
 | |
|       - SNAPSHOT_INTERVAL=5m30s
 | |
|       - RESTORE_SNAPSHOT=false
 | |
|       - RESTORE_AOF=false
 | |
|       - AOF_SYNC_STRATEGY=everysec
 | |
|       - MAX_MEMORY=100mb
 | |
|       - EVICTION_POLICY=noeviction
 | |
|       - EVICTION_SAMPLE=20
 | |
|       - EVICTION_INTERVAL=100ms
 | |
|       # List of echovault cert/key pairs
 | |
|       - CERT_KEY_PAIR_1=/etc/ssl/certs/echovault/echovault/server1.crt,/etc/ssl/certs/echovault/echovault/server1.key
 | |
|       - CERT_KEY_PAIR_2=/etc/ssl/certs/echovault/echovault/server2.crt,/etc/ssl/certs/echovault/echovault/server2.key
 | |
|       # List of client certificate authorities
 | |
|       - CLIENT_CA_1=/etc/ssl/certs/echovault/client/rootCA.crt
 | |
|       # List of shared object plugins to load on startup
 | |
|       - MODULE_1=/lib/echovault/modules/module_set/module_set.so
 | |
|       - MODULE_2=/lib/echovault/modules/module_get/module_get.so
 | |
|     ports:
 | |
|       - "7481:7480"
 | |
|       - "7945:7946"
 | |
|       - "8000:8000"
 | |
|     volumes:
 | |
|       - ./volumes/config:/etc/echovault/config
 | |
|       - ./volumes/plugins:/lib/echovault/plugins
 | |
|       - ./volumes/nodes/cluster_node_1:/var/lib/echovault
 | |
|     networks:
 | |
|       - testnet
 | |
| 
 | |
|   cluster_node_2:
 | |
|     container_name: cluster_node_2
 | |
|     build:
 | |
|       context: .
 | |
|       dockerfile: Dockerfile.dev
 | |
|     environment:
 | |
|       - PORT=7480
 | |
|       - RAFT_PORT=8000
 | |
|       - ML_PORT=7946
 | |
|       - SERVER_ID=2
 | |
|       - JOIN_ADDR=3/cluster_node_3:7946
 | |
|       - DATA_DIR=/var/lib/echovault
 | |
|       - IN_MEMORY=true
 | |
|       - TLS=false
 | |
|       - MTLS=false
 | |
|       - BOOTSTRAP_CLUSTER=false
 | |
|       - ACL_CONFIG=/etc/echovault/config/acl.yml
 | |
|       - REQUIRE_PASS=false
 | |
|       - FORWARD_COMMAND=true
 | |
|       - SNAPSHOT_THRESHOLD=1000
 | |
|       - SNAPSHOT_INTERVAL=5m30s
 | |
|       - RESTORE_SNAPSHOT=false
 | |
|       - RESTORE_AOF=false
 | |
|       - AOF_SYNC_STRATEGY=everysec
 | |
|       - MAX_MEMORY=100mb
 | |
|       - EVICTION_POLICY=noeviction
 | |
|       - EVICTION_SAMPLE=20
 | |
|       - EVICTION_INTERVAL=100ms
 | |
|       # List of echovault cert/key pairs
 | |
|       - CERT_KEY_PAIR_1=/etc/ssl/certs/echovault/echovault/server1.crt,/etc/ssl/certs/echovault/echovault/server1.key
 | |
|       - CERT_KEY_PAIR_2=/etc/ssl/certs/echovault/echovault/server2.crt,/etc/ssl/certs/echovault/echovault/server2.key
 | |
|       # List of client certificate authorities
 | |
|       - CLIENT_CA_1=/etc/ssl/certs/echovault/client/rootCA.crt
 | |
|       # List of shared object plugins to load on startup
 | |
|       - MODULE_1=/lib/echovault/modules/module_set/module_set.so
 | |
|       - MODULE_2=/lib/echovault/modules/module_get/module_get.so
 | |
|     ports:
 | |
|       - "7482:7480"
 | |
|       - "7947:7946"
 | |
|       - "8001:8000"
 | |
|     volumes:
 | |
|       - ./volumes/config:/etc/echovault/config
 | |
|       - ./volumes/plugins:/lib/echovault/plugins
 | |
|       - ./volumes/nodes/cluster_node_2:/var/lib/echovault
 | |
|     networks:
 | |
|       - testnet
 | |
| 
 | |
|   cluster_node_3:
 | |
|     container_name: cluster_node_3
 | |
|     build:
 | |
|       context: .
 | |
|       dockerfile: Dockerfile.dev
 | |
|     environment:
 | |
|       - PORT=7480
 | |
|       - RAFT_PORT=8000
 | |
|       - ML_PORT=7946
 | |
|       - SERVER_ID=3
 | |
|       - JOIN_ADDR=4/cluster_node_4:7946
 | |
|       - DATA_DIR=/var/lib/echovault
 | |
|       - IN_MEMORY=true
 | |
|       - TLS=false
 | |
|       - MTLS=false
 | |
|       - BOOTSTRAP_CLUSTER=false
 | |
|       - ACL_CONFIG=/etc/echovault/config/acl.yml
 | |
|       - REQUIRE_PASS=false
 | |
|       - FORWARD_COMMAND=true
 | |
|       - SNAPSHOT_THRESHOLD=1000
 | |
|       - SNAPSHOT_INTERVAL=5m30s
 | |
|       - RESTORE_SNAPSHOT=false
 | |
|       - RESTORE_AOF=false
 | |
|       - AOF_SYNC_STRATEGY=everysec
 | |
|       - MAX_MEMORY=100mb
 | |
|       - EVICTION_POLICY=noeviction
 | |
|       - EVICTION_SAMPLE=20
 | |
|       - EVICTION_INTERVAL=100ms
 | |
|       # List of echovault cert/key pairs
 | |
|       - CERT_KEY_PAIR_1=/etc/ssl/certs/echovault/echovault/server1.crt,/etc/ssl/certs/echovault/echovault/server1.key
 | |
|       - CERT_KEY_PAIR_2=/etc/ssl/certs/echovault/echovault/server2.crt,/etc/ssl/certs/echovault/echovault/server2.key
 | |
|       # List of client certificate authorities
 | |
|       - CLIENT_CA_1=/etc/ssl/certs/echovault/client/rootCA.crt
 | |
|       # List of shared object plugins to load on startup
 | |
|       - MODULE_1=/lib/echovault/modules/module_set/module_set.so
 | |
|       - MODULE_2=/lib/echovault/modules/module_get/module_get.so
 | |
|     ports:
 | |
|       - "7483:7480"
 | |
|       - "7948:7946"
 | |
|       - "8002:8000"
 | |
|     volumes:
 | |
|       - ./volumes/config:/etc/echovault/config
 | |
|       - ./volumes/plugins:/lib/echovault/plugins
 | |
|       - ./volumes/nodes/cluster_node_3:/var/lib/echovault
 | |
|     networks:
 | |
|       - testnet
 | |
| 
 | |
|   cluster_node_4:
 | |
|     container_name: cluster_node_4
 | |
|     build:
 | |
|       context: .
 | |
|       dockerfile: Dockerfile.dev
 | |
|     environment:
 | |
|       - PORT=7480
 | |
|       - RAFT_PORT=8000
 | |
|       - ML_PORT=7946
 | |
|       - SERVER_ID=4
 | |
|       - JOIN_ADDR=5/cluster_node_5:7946
 | |
|       - DATA_DIR=/var/lib/echovault
 | |
|       - IN_MEMORY=true
 | |
|       - TLS=false
 | |
|       - MTLS=false
 | |
|       - BOOTSTRAP_CLUSTER=false
 | |
|       - ACL_CONFIG=/etc/echovault/config/acl.yml
 | |
|       - REQUIRE_PASS=false
 | |
|       - FORWARD_COMMAND=true
 | |
|       - SNAPSHOT_THRESHOLD=1000
 | |
|       - SNAPSHOT_INTERVAL=5m30s
 | |
|       - RESTORE_SNAPSHOT=false
 | |
|       - RESTORE_AOF=false
 | |
|       - AOF_SYNC_STRATEGY=everysec
 | |
|       - MAX_MEMORY=100mb
 | |
|       - EVICTION_POLICY=noeviction
 | |
|       - EVICTION_SAMPLE=20
 | |
|       - EVICTION_INTERVAL=100ms
 | |
|       # List of echovault cert/key pairs
 | |
|       - CERT_KEY_PAIR_1=/etc/ssl/certs/echovault/echovault/server1.crt,/etc/ssl/certs/echovault/echovault/server1.key
 | |
|       - CERT_KEY_PAIR_2=/etc/ssl/certs/echovault/echovault/server2.crt,/etc/ssl/certs/echovault/echovault/server2.key
 | |
|       # List of client certificate authorities
 | |
|       - CLIENT_CA_1=/etc/ssl/certs/echovault/client/rootCA.crt
 | |
|       # List of shared object plugins to load on startup
 | |
|       - MODULE_1=/lib/echovault/modules/module_set/module_set.so
 | |
|       - MODULE_2=/lib/echovault/modules/module_get/module_get.so
 | |
|     ports:
 | |
|       - "7484:7480"
 | |
|       - "7949:7946"
 | |
|       - "8003:8000"
 | |
|     volumes:
 | |
|       - ./volumes/config:/etc/echovault/config
 | |
|       - ./volumes/plugins:/lib/echovault/plugins
 | |
|       - ./volumes/nodes/cluster_node_4:/var/lib/echovault
 | |
|     networks:
 | |
|       - testnet
 | |
| 
 | |
|   cluster_node_5:
 | |
|     container_name: cluster_node_5
 | |
|     build:
 | |
|       context: .
 | |
|       dockerfile: Dockerfile.dev
 | |
|     environment:
 | |
|       - PORT=7480
 | |
|       - RAFT_PORT=8000
 | |
|       - ML_PORT=7946
 | |
|       - SERVER_ID=5
 | |
|       - JOIN_ADDR=1/cluster_node_1:7946
 | |
|       - DATA_DIR=/var/lib/echovault
 | |
|       - IN_MEMORY=true
 | |
|       - TLS=false
 | |
|       - MTLS=false
 | |
|       - BOOTSTRAP_CLUSTER=false
 | |
|       - ACL_CONFIG=/etc/echovault/config/acl.yml
 | |
|       - REQUIRE_PASS=false
 | |
|       - FORWARD_COMMAND=true
 | |
|       - SNAPSHOT_THRESHOLD=1000
 | |
|       - SNAPSHOT_INTERVAL=5m30s
 | |
|       - RESTORE_SNAPSHOT=false
 | |
|       - RESTORE_AOF=false
 | |
|       - AOF_SYNC_STRATEGY=everysec
 | |
|       - MAX_MEMORY=100mb
 | |
|       - EVICTION_POLICY=noeviction
 | |
|       - EVICTION_SAMPLE=20
 | |
|       - EVICTION_INTERVAL=100ms
 | |
|       # List of echovault cert/key pairs
 | |
|       - CERT_KEY_PAIR_1=/etc/ssl/certs/echovault/echovault/server1.crt,/etc/ssl/certs/echovault/echovault/server1.key
 | |
|       - CERT_KEY_PAIR_2=/etc/ssl/certs/echovault/echovault/server2.crt,/etc/ssl/certs/echovault/echovault/server2.key
 | |
|       # List of client certificate authorities
 | |
|       - CLIENT_CA_1=/etc/ssl/certs/echovault/client/rootCA.crt
 | |
|       # List of shared object plugins to load on startup
 | |
|       - MODULE_1=/lib/echovault/modules/module_set/module_set.so
 | |
|       - MODULE_2=/lib/echovault/modules/module_get/module_get.so
 | |
|     ports:
 | |
|       - "7485:7480"
 | |
|       - "7950:7946"
 | |
|       - "8004:8000"
 | |
|     volumes:
 | |
|       - ./volumes/config:/etc/echovault/config
 | |
|       - ./volumes/plugins:/lib/echovault/plugins
 | |
|       - ./volumes/nodes/cluster_node_5:/var/lib/echovault
 | |
|     networks:
 | |
|       - testnet | 
