skillhub/compose.storage.rustfs.yml
XiaoSeS 8a150e34d3 feat(storage): add S3-compatible deployment options
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-10-21 14:31:29 +08:00

49 lines
1.7 KiB
YAML

# Optional single-node storage. Select exactly one overlay with scripts/storage-compose.sh.
services:
object-storage-permissions:
image: ${RUSTFS_IMAGE:-docker.io/rustfs/rustfs:1.0.3@sha256:9ca9559533b537d10482fe923288b676ad08f92a7069d9a17327fbae3cab688b}
user: "0:0"
entrypoint: ["chown", "10001:10001", "/data"]
restart: "no"
network_mode: none
read_only: true
cap_drop: [ALL]
cap_add: [CHOWN]
volumes:
- rustfs_data:/data
object-storage:
image: ${RUSTFS_IMAGE:-docker.io/rustfs/rustfs:1.0.3@sha256:9ca9559533b537d10482fe923288b676ad08f92a7069d9a17327fbae3cab688b}
restart: unless-stopped
depends_on:
object-storage-permissions:
condition: service_completed_successfully
environment:
RUSTFS_ACCESS_KEY: ${SKILLHUB_OBJECT_STORAGE_ROOT_USER:?Set storage administrator user}
RUSTFS_SECRET_KEY: ${SKILLHUB_OBJECT_STORAGE_ROOT_PASSWORD:?Set storage administrator password}
RUSTFS_ADDRESS: ":9000"
RUSTFS_CONSOLE_ADDRESS: ":9001"
ports:
- "${OBJECT_STORAGE_BIND_ADDRESS:-127.0.0.1}:${OBJECT_STORAGE_API_PORT:-9000}:9000"
- "${OBJECT_STORAGE_BIND_ADDRESS:-127.0.0.1}:${OBJECT_STORAGE_CONSOLE_PORT:-9001}:9001"
volumes:
- rustfs_data:/data
healthcheck:
test: ["CMD", "curl", "--fail", "--silent", "--max-time", "3", "http://127.0.0.1:9000/health"]
interval: 5s
timeout: 5s
retries: 20
start_period: 15s
server:
environment:
SKILLHUB_STORAGE_PROVIDER: s3
SKILLHUB_STORAGE_S3_ENDPOINT: http://object-storage:9000
SKILLHUB_STORAGE_S3_FORCE_PATH_STYLE: "true"
SKILLHUB_STORAGE_S3_AUTO_CREATE_BUCKET: "false"
depends_on:
object-storage:
condition: service_healthy
volumes:
rustfs_data: