# 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_CONSOLE_ADDRESS=:9002 - RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml platform: linux/amd64 ports: - "9001:9000" # 映射宿主机的 9001 端口到容器的 9000 端口 - "9101:9002" volumes: # - ./data:/root/data # 将当前路径挂载到容器内的 /root/data - ./.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_CONSOLE_ADDRESS=:9002 - RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml platform: linux/amd64 ports: - "9002:9000" # 映射宿主机的 9002 端口到容器的 9000 端口 - "9102:9002" 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_CONSOLE_ADDRESS=:9002 - RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml platform: linux/amd64 ports: - "9003:9000" # 映射宿主机的 9003 端口到容器的 9000 端口 - "9103:9002" 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_CONSOLE_ADDRESS=:9002 - RUSTFS_OBS_CONFIG=/etc/observability/config/obs-multi.toml platform: linux/amd64 ports: - "9004:9000" # 映射宿主机的 9004 端口到容器的 9000 端口 - "9104:9002" 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"