mirror of
https://github.com/rustfs/rustfs.git
synced 2026-01-17 01:30:33 +00:00
This commit streamlines the server configuration by unifying the S3 API and the WebUI (Console) to serve on a single port. Previously, the console was managed by separate configuration options (`RUSTFS_CONSOLE_ENABLE` and `RUSTFS_CONSOLE_ADDRESS`), requiring a distinct port. This added complexity to deployment and configuration. With this change: - The `RUSTFS_CONSOLE_ADDRESS` and `RUSTFS_CONSOLE_FS_ENDPOINT` environment variables are removed. - The WebUI is now always available and served directly from the main application port defined by `RUSTFS_ADDRESS`. - This simplifies setup, reduces the number of exposed ports, and makes the application easier to manage and deploy, especially in containerized environments. Users should update their startup scripts and remove the deprecated `RUSTFS_CONSOLE_*` variables.
155 lines
4.4 KiB
YAML
155 lines
4.4 KiB
YAML
# Copyright 2024 RustFS Team
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
services:
|
|
otel-collector:
|
|
image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.127.0
|
|
environment:
|
|
- TZ=Asia/Shanghai
|
|
volumes:
|
|
- ./.docker/observability/otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml
|
|
ports:
|
|
- 1888:1888
|
|
- 8888:8888
|
|
- 8889:8889
|
|
- 13133:13133
|
|
- 4317:4317
|
|
- 4318:4318
|
|
- 55679:55679
|
|
networks:
|
|
- rustfs-network
|
|
jaeger:
|
|
image: jaegertracing/jaeger:2.6.0
|
|
environment:
|
|
- TZ=Asia/Shanghai
|
|
ports:
|
|
- "16686:16686"
|
|
- "14317:4317"
|
|
- "14318:4318"
|
|
networks:
|
|
- rustfs-network
|
|
prometheus:
|
|
image: prom/prometheus:v3.4.1
|
|
environment:
|
|
- TZ=Asia/Shanghai
|
|
volumes:
|
|
- ./.docker/observability/prometheus.yml:/etc/prometheus/prometheus.yml
|
|
ports:
|
|
- "9090:9090"
|
|
networks:
|
|
- rustfs-network
|
|
loki:
|
|
image: grafana/loki:3.5.1
|
|
environment:
|
|
- TZ=Asia/Shanghai
|
|
volumes:
|
|
- ./.docker/observability/loki-config.yaml:/etc/loki/local-config.yaml
|
|
ports:
|
|
- "3100:3100"
|
|
command: -config.file=/etc/loki/local-config.yaml
|
|
networks:
|
|
- rustfs-network
|
|
grafana:
|
|
image: grafana/grafana:12.0.1
|
|
ports:
|
|
- "3000:3000" # Web UI
|
|
environment:
|
|
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
- TZ=Asia/Shanghai
|
|
networks:
|
|
- rustfs-network
|
|
|
|
node1:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.obs
|
|
container_name: node1
|
|
environment:
|
|
- RUSTFS_VOLUMES=http://node{1...4}:9000/root/data/target/volume/test{1...4}
|
|
- RUSTFS_ADDRESS=:9000
|
|
- RUSTFS_CONSOLE_ENABLE=true
|
|
- RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml
|
|
platform: linux/amd64
|
|
ports:
|
|
- "9001:9000" # Map port 9001 of the host to port 9000 of the container
|
|
volumes:
|
|
# - ./data:/root/data # Mount the current path to /root/data in the container
|
|
- ./.docker/observability/config:/etc/observability/config
|
|
networks:
|
|
- rustfs-network
|
|
|
|
node2:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.obs
|
|
container_name: node2
|
|
environment:
|
|
- RUSTFS_VOLUMES=http://node{1...4}:9000/root/data/target/volume/test{1...4}
|
|
- RUSTFS_ADDRESS=:9000
|
|
- RUSTFS_CONSOLE_ENABLE=true
|
|
- RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml
|
|
platform: linux/amd64
|
|
ports:
|
|
- "9002:9000" # Map port 9002 of the host to port 9000 of the container
|
|
volumes:
|
|
# - ./data:/root/data
|
|
- ./.docker/observability/config:/etc/observability/config
|
|
networks:
|
|
- rustfs-network
|
|
|
|
node3:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.obs
|
|
container_name: node3
|
|
environment:
|
|
- RUSTFS_VOLUMES=http://node{1...4}:9000/root/data/target/volume/test{1...4}
|
|
- RUSTFS_ADDRESS=:9000
|
|
- RUSTFS_CONSOLE_ENABLE=true
|
|
- RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml
|
|
platform: linux/amd64
|
|
ports:
|
|
- "9003:9000" # Map port 9003 of the host to port 9000 of the container
|
|
volumes:
|
|
# - ./data:/root/data
|
|
- ./.docker/observability/config:/etc/observability/config
|
|
networks:
|
|
- rustfs-network
|
|
|
|
node4:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.obs
|
|
container_name: node4
|
|
environment:
|
|
- RUSTFS_VOLUMES=http://node{1...4}:9000/root/data/target/volume/test{1...4}
|
|
- RUSTFS_ADDRESS=:9000
|
|
- RUSTFS_CONSOLE_ENABLE=true
|
|
- RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml
|
|
platform: linux/amd64
|
|
ports:
|
|
- "9004:9000" # Map port 9004 of the host to port 9000 of the container
|
|
volumes:
|
|
# - ./data:/root/data
|
|
- ./.docker/observability/config:/etc/observability/config
|
|
networks:
|
|
- rustfs-network
|
|
|
|
networks:
|
|
rustfs-network:
|
|
driver: bridge
|
|
name: "network_rustfs_config"
|
|
driver_opts:
|
|
com.docker.network.enable_ipv6: "true"
|