You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

99 lines
3.0 KiB

version: '3.9'
services:
# Build SeaweedFS with FoundationDB support
seaweedfs-fdb-builder:
build:
context: ../.. # Build from seaweedfs root
dockerfile: test/foundationdb/Dockerfile.build
image: seaweedfs:foundationdb
container_name: seaweedfs-fdb-builder
volumes:
- seaweedfs-build:/build/output
command: >
sh -c "
echo '🔨 Building SeaweedFS with FoundationDB support...' &&
cp /usr/local/bin/weed /build/output/weed-foundationdb &&
cp /usr/local/bin/fdb_store_test /build/output/fdb_store_test &&
echo '✅ Build complete! Binaries saved to volume.' &&
/usr/local/bin/weed version &&
echo '📦 Available binaries:' &&
ls -la /build/output/
"
networks:
- fdb_network
# FoundationDB cluster for testing
fdb1:
image: foundationdb/foundationdb:7.1.61
hostname: fdb1
environment:
- FDB_NETWORKING_MODE=container
networks:
- fdb_network
volumes:
- fdb_data1:/var/fdb/data
- fdb_config:/var/fdb/config
command: >
bash -c "
echo 'docker:docker@fdb1:4500' > /var/fdb/config/fdb.cluster &&
/usr/bin/fdbserver --config_path=/var/fdb/config --datadir=/var/fdb/data --logdir=/var/fdb/logs --public_address=fdb1:4500 --listen_address=0.0.0.0:4500 --class=storage
"
# FoundationDB client for database initialization
fdb-init:
image: foundationdb/foundationdb:7.1.61
depends_on:
- fdb1
volumes:
- fdb_config:/var/fdb/config
networks:
- fdb_network
command: >
bash -c "
sleep 10 &&
echo '🔧 Initializing FoundationDB...' &&
fdbcli -C /var/fdb/config/fdb.cluster --exec 'configure new single memory' &&
fdbcli -C /var/fdb/config/fdb.cluster --exec 'status' &&
echo '✅ FoundationDB initialized!'
"
# Test the built SeaweedFS with FoundationDB
seaweedfs-test:
image: seaweedfs:foundationdb
depends_on:
- fdb-init
- seaweedfs-fdb-builder
volumes:
- fdb_config:/var/fdb/config
- seaweedfs-build:/build/output
networks:
- fdb_network
environment:
WEED_FOUNDATIONDB_ENABLED: "true"
WEED_FOUNDATIONDB_CLUSTER_FILE: "/var/fdb/config/fdb.cluster"
WEED_FOUNDATIONDB_API_VERSION: "720"
WEED_FOUNDATIONDB_DIRECTORY_PREFIX: "seaweedfs_test"
command: >
bash -c "
echo '🧪 Testing FoundationDB integration...' &&
sleep 5 &&
echo '📋 Cluster file contents:' &&
cat /var/fdb/config/fdb.cluster &&
echo '🚀 Starting SeaweedFS server with FoundationDB...' &&
/usr/local/bin/weed server -filer -master.volumeSizeLimitMB=16 -volume.max=0 &
SERVER_PID=$! &&
sleep 10 &&
echo '✅ SeaweedFS started successfully with FoundationDB!' &&
echo '🏁 Integration test passed!' &&
kill $SERVER_PID
"
volumes:
fdb_data1:
fdb_config:
seaweedfs-build:
networks:
fdb_network:
driver: bridge