mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 08:18:18 +00:00
4efefd67b5
* fix(site-replication): Add Docker Compose setup for site replication testing - Fixed the site replication flag issue and resolved the replication storm. - Introduced a new directory for site replication tests with Docker Compose. - Created `docker-compose.yml` to define three RustFS sites and a setup container. - Added `README.md` to document the purpose, usage, and test flow of the replication setup. - Implemented `run-object-flow-check.sh` script to verify object replication across sites. - Configured health checks and volume permissions for the RustFS containers. - Enabled customization of access keys, bucket names, and other parameters via environment variables. * fix * fix
116 lines
4.6 KiB
YAML
116 lines
4.6 KiB
YAML
# Copyright 2024 RustFS Team
|
|
#
|
|
# Licensed under the Apache License, Version 2.0.
|
|
|
|
x-rustfs-rio-v2-env: &rustfs-rio-v2-env
|
|
RUSTFS_VOLUMES: "http://rustfs-rio-v2-node{1...4}:9000/data/disk{1...4}"
|
|
RUSTFS_ADDRESS: ":9000"
|
|
RUSTFS_CONSOLE_ADDRESS: ":9001"
|
|
RUSTFS_CONSOLE_ENABLE: "true"
|
|
RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS: "*"
|
|
RUSTFS_ACCESS_KEY: "${RUSTFS_ACCESS_KEY:-rustfsadmin}"
|
|
RUSTFS_SECRET_KEY: "${RUSTFS_SECRET_KEY:-rustfsadmin}"
|
|
RUSTFS_OBS_LOGGER_LEVEL: "${RUSTFS_OBS_LOGGER_LEVEL:-info}"
|
|
RUSTFS_OBS_LOG_DIRECTORY: "/logs"
|
|
RUSTFS_COMPRESSION_ENABLED: "${RUSTFS_COMPRESSION_ENABLED:-true}"
|
|
RUSTFS_COMPRESSION_EXTENSIONS: "${RUSTFS_COMPRESSION_EXTENSIONS:-.txt,.log,.csv,.json,.tar,.xml,.bin}"
|
|
RUSTFS_COMPRESSION_MIME_TYPES: "${RUSTFS_COMPRESSION_MIME_TYPES:-text/*,application/json,application/xml,binary/octet-stream}"
|
|
RUSTFS_KMS_ENABLE: "${RUSTFS_KMS_ENABLE:-false}"
|
|
RUSTFS_KMS_BACKEND: "${RUSTFS_KMS_BACKEND:-local}"
|
|
RUSTFS_KMS_KEY_DIR: "${RUSTFS_KMS_KEY_DIR:-/kms}"
|
|
RUSTFS_KMS_DEFAULT_KEY_ID: "${RUSTFS_KMS_DEFAULT_KEY_ID:-compat-key}"
|
|
RUSTFS_KMS_ALLOW_INSECURE_DEV_DEFAULTS: "${RUSTFS_KMS_ALLOW_INSECURE_DEV_DEFAULTS:-false}"
|
|
RUSTFS_UNSAFE_BYPASS_DISK_CHECK: "${RUSTFS_UNSAFE_BYPASS_DISK_CHECK:-true}"
|
|
|
|
x-rustfs-rio-v2-node: &rustfs-rio-v2-node
|
|
image: "${RUSTFS_RIO_V2_IMAGE:-rustfs/rustfs:compat-rio-v2}"
|
|
entrypoint:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
until getent hosts rustfs-rio-v2-node1 >/dev/null &&
|
|
getent hosts rustfs-rio-v2-node2 >/dev/null &&
|
|
getent hosts rustfs-rio-v2-node3 >/dev/null &&
|
|
getent hosts rustfs-rio-v2-node4 >/dev/null; do
|
|
sleep 1
|
|
done
|
|
exec /entrypoint.sh /usr/bin/rustfs
|
|
build:
|
|
context: ../..
|
|
dockerfile: Dockerfile.source
|
|
args:
|
|
RUSTFS_BUILD_FEATURES: "rio-v2"
|
|
environment: *rustfs-rio-v2-env
|
|
depends_on:
|
|
rustfs-rio-v2-permission-helper:
|
|
condition: service_completed_successfully
|
|
networks:
|
|
- rustfs-rio-v2-net
|
|
restart: unless-stopped
|
|
|
|
services:
|
|
rustfs-rio-v2-permission-helper:
|
|
image: alpine:3.23
|
|
command: sh -c "mkdir -p /compat-data /kms && chown -R 10001:10001 /compat-data /kms"
|
|
volumes:
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}:/compat-data
|
|
- ./kms/rustfs-compat:/kms
|
|
restart: "no"
|
|
|
|
rustfs-rio-v2-node1:
|
|
<<: *rustfs-rio-v2-node
|
|
hostname: rustfs-rio-v2-node1
|
|
volumes:
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node1/disk1:/data/disk1
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node1/disk2:/data/disk2
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node1/disk3:/data/disk3
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node1/disk4:/data/disk4
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/logs/node1:/logs
|
|
- ./kms/rustfs-compat:/kms
|
|
ports:
|
|
- "${RUSTFS_RIO_V2_API_PORT:-9300}:9000"
|
|
- "${RUSTFS_RIO_V2_CONSOLE_PORT:-9301}:9001"
|
|
|
|
rustfs-rio-v2-node2:
|
|
<<: *rustfs-rio-v2-node
|
|
hostname: rustfs-rio-v2-node2
|
|
volumes:
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node2/disk1:/data/disk1
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node2/disk2:/data/disk2
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node2/disk3:/data/disk3
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node2/disk4:/data/disk4
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/logs/node2:/logs
|
|
- ./kms/rustfs-compat:/kms
|
|
ports:
|
|
- "${RUSTFS_RIO_V2_NODE2_PORT:-9302}:9000"
|
|
|
|
rustfs-rio-v2-node3:
|
|
<<: *rustfs-rio-v2-node
|
|
hostname: rustfs-rio-v2-node3
|
|
volumes:
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node3/disk1:/data/disk1
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node3/disk2:/data/disk2
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node3/disk3:/data/disk3
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node3/disk4:/data/disk4
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/logs/node3:/logs
|
|
- ./kms/rustfs-compat:/kms
|
|
ports:
|
|
- "${RUSTFS_RIO_V2_NODE3_PORT:-9303}:9000"
|
|
|
|
rustfs-rio-v2-node4:
|
|
<<: *rustfs-rio-v2-node
|
|
hostname: rustfs-rio-v2-node4
|
|
volumes:
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node4/disk1:/data/disk1
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node4/disk2:/data/disk2
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node4/disk3:/data/disk3
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/node4/disk4:/data/disk4
|
|
- ${RUSTFS_RIO_V2_DATASET:-./data/rustfs-rio-v2}/logs/node4:/logs
|
|
- ./kms/rustfs-compat:/kms
|
|
ports:
|
|
- "${RUSTFS_RIO_V2_NODE4_PORT:-9304}:9000"
|
|
|
|
networks:
|
|
rustfs-rio-v2-net:
|
|
driver: bridge
|