Files
SugarDB/docker-compose.yaml
Kelvin Clement Mwinuka 0f6ae1c8ac Implemented LoadModules method to load external modules at runtime.
Implemented UnloadModules method to remove modules at runtime.
Implemented ListModules method to list the current loaded modules.
Implemented "MODULE LOAD", "MODULE UNLOAD", and "MODULE LIST" commands.
2024-05-03 11:57:21 +08:00

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=cluster_node_2:7946
- DATA_DIR=/var/lib/echovault
- IN_MEMORY=false
- 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=cluster_node_3:7946
- 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
- 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=cluster_node_4:7946
- 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
- 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=cluster_node_5:7946
- 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
- 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=cluster_node_1:7946
- 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
- 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