aboutsummaryrefslogtreecommitdiff
path: root/test/foundationdb/docker-compose.build.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/foundationdb/docker-compose.build.yml')
-rw-r--r--test/foundationdb/docker-compose.build.yml101
1 files changed, 101 insertions, 0 deletions
diff --git a/test/foundationdb/docker-compose.build.yml b/test/foundationdb/docker-compose.build.yml
new file mode 100644
index 000000000..d470b232d
--- /dev/null
+++ b/test/foundationdb/docker-compose.build.yml
@@ -0,0 +1,101 @@
+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:
+ condition: service_completed_successfully
+ seaweedfs-fdb-builder:
+ condition: service_completed_successfully
+ 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: "740"
+ 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