Files
SugarDB/docker-compose.yaml
Kelvin Mwinuka 108bf97b4d Extend SugarDB Commands Using Lua Scripts (#155)
* Extend SugarDB by creating new commands using Lua - @kelvinmwinuka
2024-12-12 09:50:43 +08:00

270 lines
8.8 KiB
YAML

networks:
testnet:
driver: bridge
services:
standalone_node:
container_name: standalone_node
build:
context: .
dockerfile: Dockerfile.dev
environment:
- BIND_ADDR=0.0.0.0
- PORT=7480
- DISCOVERY_PORT=7946
- SERVER_ID=1
- PLUGIN_DIR=/usr/local/lib/sugardb
- DATA_DIR=/var/lib/sugardb
- TLS=false
- MTLS=false
- BOOTSTRAP_CLUSTER=false
- ACL_CONFIG=/etc/sugardb/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 sugardb cert/key pairs
- CERT_KEY_PAIR_1=/etc/ssl/certs/sugardb/server/server1.crt,/etc/ssl/certs/sugardb/server/server1.key
- CERT_KEY_PAIR_2=/etc/ssl/certs/sugardb/server/server2.crt,/etc/ssl/certs/sugardb/server/server2.key
# List of client certificate authorities
- CLIENT_CA_1=/etc/ssl/certs/sugardb/client/rootCA.crt
# List of shared object plugins to load on startup
- MODULE_1=./modules/module_set/module_set.so
- MODULE_2=./modules/module_get/module_get.so
ports:
- "7480:7480"
- "7946:7946"
volumes:
- ./internal/volumes/config:/etc/sugardb/config
- ./internal/volumes/nodes/standalone_node:/var/lib/sugardb
- ./internal/volumes/modules/lua:/var/lib/sugardb/scripts/lua
networks:
- testnet
cluster_node_1:
container_name: cluster_node_1
build:
context: .
dockerfile: Dockerfile.dev
environment:
- BIND_ADDR=0.0.0.0
- PORT=7480
- DISCOVERY_PORT=7946
- SERVER_ID=1
- JOIN_ADDR=2/cluster_node_2:7946
- DATA_DIR=/var/lib/sugardb
- TLS=false
- MTLS=false
- BOOTSTRAP_CLUSTER=true
- ACL_CONFIG=/etc/sugardb/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 sugardb cert/key pairs
- CERT_KEY_PAIR_1=/etc/ssl/certs/sugardb/server/server1.crt,/etc/ssl/certs/sugardb/server/server1.key
- CERT_KEY_PAIR_2=/etc/ssl/certs/sugardb/server/server2.crt,/etc/ssl/certs/sugardb/server/server2.key
# List of client certificate authorities
- CLIENT_CA_1=/etc/ssl/certs/sugardb/client/rootCA.crt
# List of shared object plugins to load on startup
- MODULE_1=./modules/module_set/module_set.so
- MODULE_2=./modules/module_get/module_get.so
ports:
- "7481:7480"
- "7945:7946"
volumes:
- ./internal/volumes/config:/etc/sugardb/config
- ./internal/volumes/nodes/cluster_node_1:/var/lib/sugardb
networks:
- testnet
cluster_node_2:
container_name: cluster_node_2
build:
context: .
dockerfile: Dockerfile.dev
environment:
- BIND_ADDR=0.0.0.0
- PORT=7480
- DISCOVERY_PORT=7946
- SERVER_ID=2
- JOIN_ADDR=3/cluster_node_3:7946
- DATA_DIR=/var/lib/sugardb
- TLS=false
- MTLS=false
- BOOTSTRAP_CLUSTER=false
- ACL_CONFIG=/etc/sugardb/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 sugardb cert/key pairs
- CERT_KEY_PAIR_1=/etc/ssl/certs/sugardb/server/server1.crt,/etc/ssl/certs/sugardb/server/server1.key
- CERT_KEY_PAIR_2=/etc/ssl/certs/sugardb/server/server2.crt,/etc/ssl/certs/sugardb/server/server2.key
# List of client certificate authorities
- CLIENT_CA_1=/etc/ssl/certs/sugardb/client/rootCA.crt
# List of shared object plugins to load on startup
- MODULE_1=./modules/module_set/module_set.so
- MODULE_2=./modules/module_get/module_get.so
ports:
- "7482:7480"
- "7947:7946"
volumes:
- ./internal/volumes/config:/etc/sugardb/config
- ./internal/volumes/nodes/cluster_node_2:/var/lib/sugardb
networks:
- testnet
cluster_node_3:
container_name: cluster_node_3
build:
context: .
dockerfile: Dockerfile.dev
environment:
- BIND_ADDR=0.0.0.0
- PORT=7480
- DISCOVERY_PORT=7946
- SERVER_ID=3
- JOIN_ADDR=4/cluster_node_4:7946
- DATA_DIR=/var/lib/sugardb
- TLS=false
- MTLS=false
- BOOTSTRAP_CLUSTER=false
- ACL_CONFIG=/etc/sugardb/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 sugardb cert/key pairs
- CERT_KEY_PAIR_1=/etc/ssl/certs/sugardb/server/server1.crt,/etc/ssl/certs/sugardb/server/server1.key
- CERT_KEY_PAIR_2=/etc/ssl/certs/sugardb/server/server2.crt,/etc/ssl/certs/sugardb/server/server2.key
# List of client certificate authorities
- CLIENT_CA_1=/etc/ssl/certs/sugardb/client/rootCA.crt
# List of shared object plugins to load on startup
- MODULE_1=./modules/module_set/module_set.so
- MODULE_2=./modules/module_get/module_get.so
ports:
- "7483:7480"
- "7948:7946"
volumes:
- ./internal/volumes/config:/etc/sugardb/config
- ./internal/volumes/nodes/cluster_node_3:/var/lib/sugardb
networks:
- testnet
cluster_node_4:
container_name: cluster_node_4
build:
context: .
dockerfile: Dockerfile.dev
environment:
- BIND_ADDR=0.0.0.0
- PORT=7480
- DISCOVERY_PORT=7946
- SERVER_ID=4
- JOIN_ADDR=5/cluster_node_5:7946
- DATA_DIR=/var/lib/sugardb
- TLS=false
- MTLS=false
- BOOTSTRAP_CLUSTER=false
- ACL_CONFIG=/etc/sugardb/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 sugardb cert/key pairs
- CERT_KEY_PAIR_1=/etc/ssl/certs/sugardb/server/server1.crt,/etc/ssl/certs/sugardb/server/server1.key
- CERT_KEY_PAIR_2=/etc/ssl/certs/sugardb/server/server2.crt,/etc/ssl/certs/sugardb/server/server2.key
# List of client certificate authorities
- CLIENT_CA_1=/etc/ssl/certs/sugardb/client/rootCA.crt
# List of shared object plugins to load on startup
- MODULE_1=./modules/module_set/module_set.so
- MODULE_2=./modules/module_get/module_get.so
ports:
- "7484:7480"
- "7949:7946"
volumes:
- ./internal/volumes/config:/etc/sugardb/config
- ./internal/volumes/nodes/cluster_node_4:/var/lib/sugardb
networks:
- testnet
cluster_node_5:
container_name: cluster_node_5
build:
context: .
dockerfile: Dockerfile.dev
environment:
- BIND_ADDR=0.0.0.0
- PORT=7480
- DISCOVERY_PORT=7946
- SERVER_ID=5
- JOIN_ADDR=1/cluster_node_1:7946
- DATA_DIR=/var/lib/sugardb
- TLS=false
- MTLS=false
- BOOTSTRAP_CLUSTER=false
- ACL_CONFIG=/etc/sugardb/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 sugardb cert/key pairs
- CERT_KEY_PAIR_1=/etc/ssl/certs/sugardb/server/server1.crt,/etc/ssl/certs/sugardb/server/server1.key
- CERT_KEY_PAIR_2=/etc/ssl/certs/sugardb/server/server2.crt,/etc/ssl/certs/sugardb/server/server2.key
# List of client certificate authorities
- CLIENT_CA_1=/etc/ssl/certs/sugardb/client/rootCA.crt
# List of shared object plugins to load on startup
- MODULE_1=./modules/module_set/module_set.so
- MODULE_2=./modules/module_get/module_get.so
ports:
- "7485:7480"
- "7950:7946"
volumes:
- ./internal/volumes/config:/etc/sugardb/config
- ./internal/volumes/nodes/cluster_node_5:/var/lib/sugardb
networks:
- testnet