The allowEmptyFolder option is no longer functional because: 1. The code that used it was already commented out 2. Empty folder cleanup is now handled asynchronously by EmptyFolderCleaner The CLI flags are kept for backward compatibility but marked as deprecated and ignored. This removes: - S3ApiServerOption.AllowEmptyFolder field - The actual usage in s3api_object_handlers_list.go - Helm chart values and template references - References in test Makefiles and docker-compose files
129 lines
3.6 KiB
YAML
129 lines
3.6 KiB
YAML
services:
|
|
|
|
fdb1:
|
|
image: ${FOUNDATIONDB_IMAGE:-foundationdb/foundationdb:7.1.61}
|
|
environment:
|
|
- FDB_CLUSTER_FILE_CONTENTS
|
|
- FDB_NETWORKING_MODE=container
|
|
- FDB_COORDINATOR_PORT=${FDB_PORT:-4500}
|
|
- FDB_PORT=${FDB_PORT:-4500}
|
|
networks:
|
|
- fdb_network
|
|
healthcheck:
|
|
test: [ "CMD", "nc", "-z", "127.0.0.1", "4500" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 60
|
|
|
|
fdb2:
|
|
image: ${FOUNDATIONDB_IMAGE:-foundationdb/foundationdb:7.1.61}
|
|
environment:
|
|
- FDB_CLUSTER_FILE_CONTENTS
|
|
- FDB_NETWORKING_MODE=container
|
|
- FDB_COORDINATOR_PORT=${FDB_PORT:-4500}
|
|
- FDB_PORT=${FDB_PORT:-4500}
|
|
networks:
|
|
- fdb_network
|
|
healthcheck:
|
|
test: [ "CMD", "nc", "-z", "127.0.0.1", "4500" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 60
|
|
|
|
fdb3:
|
|
image: ${FOUNDATIONDB_IMAGE:-foundationdb/foundationdb:7.1.61}
|
|
environment:
|
|
- FDB_CLUSTER_FILE_CONTENTS
|
|
- FDB_NETWORKING_MODE=container
|
|
- FDB_COORDINATOR_PORT=${FDB_PORT:-4500}
|
|
- FDB_PORT=${FDB_PORT:-4500}
|
|
networks:
|
|
- fdb_network
|
|
healthcheck:
|
|
test: [ "CMD", "nc", "-z", "127.0.0.1", "4500" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 60
|
|
|
|
# Initialize and configure the database
|
|
fdb-init:
|
|
image: ${FOUNDATIONDB_IMAGE:-foundationdb/foundationdb:7.1.61}
|
|
configs:
|
|
- target: /var/fdb/config/fdb.cluster
|
|
source: fdb.cluster
|
|
environment:
|
|
- FDB_CLUSTER_FILE=/var/fdb/config/fdb.cluster
|
|
networks:
|
|
- fdb_network
|
|
depends_on:
|
|
fdb1:
|
|
condition: service_healthy
|
|
fdb2:
|
|
condition: service_healthy
|
|
fdb3:
|
|
condition: service_healthy
|
|
entrypoint: |
|
|
bash -c "
|
|
set -o errexit
|
|
# Wait for cluster to be ready
|
|
sleep 10
|
|
|
|
# Configure database
|
|
echo 'Initializing FoundationDB database...'
|
|
if ! fdbcli --exec 'configure new single ssd' >/tmp/fdbcli.out 2>&1; then
|
|
if ! grep -qi 'ERROR: Database already exists!' /tmp/fdbcli.out >/dev/null 2>/dev/null; then
|
|
echo 'ERROR: Database initialization failed!' >&2
|
|
cat /tmp/fdbcli.out >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Wait for configuration to complete
|
|
sleep 5
|
|
|
|
# Verify cluster status
|
|
fdbcli --exec 'status'
|
|
|
|
echo 'FoundationDB cluster initialization complete!'
|
|
"
|
|
|
|
# SeaweedFS service with FoundationDB filer
|
|
seaweedfs:
|
|
image: ${SEAWEEDFS_IMAGE:-chrislusf/seaweedfs:latest}
|
|
depends_on:
|
|
fdb-init:
|
|
condition: service_completed_successfully
|
|
networks:
|
|
- fdb_network
|
|
ports:
|
|
- "9333:9333"
|
|
- "19333:19333"
|
|
- "8888:8888"
|
|
- "8333:8333"
|
|
- "18888:18888"
|
|
configs:
|
|
- target: /var/fdb/config/fdb.cluster
|
|
source: fdb.cluster
|
|
volumes:
|
|
- ./s3.json:/etc/seaweedfs/s3.json
|
|
- ./filer.toml:/etc/seaweedfs/filer.toml
|
|
environment:
|
|
- WEED_LEVELDB2_ENABLED
|
|
- WEED_FOUNDATIONDB_ENABLED
|
|
- WEED_FOUNDATIONDB_CLUSTER_FILE
|
|
- WEED_FOUNDATIONDB_API_VERSION
|
|
- WEED_FOUNDATIONDB_TIMEOUT
|
|
- WEED_FOUNDATIONDB_MAX_RETRY_DELAY
|
|
- WEED_MASTER_VOLUME_GROWTH_COPY_1=1
|
|
- WEED_MASTER_VOLUME_GROWTH_COPY_OTHER=1
|
|
command: "weed server -ip=seaweedfs -filer -master.volumeSizeLimitMB=16 -volume.max=0 -volume -volume.preStopSeconds=1 -s3 -s3.config=/etc/seaweedfs/s3.json -s3.port=8333 -s3.allowDeleteBucketNotEmpty=false"
|
|
|
|
configs:
|
|
fdb.cluster:
|
|
content: |
|
|
${FDB_CLUSTER_FILE_CONTENTS:-docker:docker@fdb1:4500,fdb2:4500,fdb3:4500}
|
|
|
|
networks:
|
|
fdb_network:
|
|
driver: bridge
|