88 lines
2.7 KiB
YAML
88 lines
2.7 KiB
YAML
version: "3.9"
|
||
|
||
services:
|
||
# -------- RustFS 主服务 --------
|
||
rustfs:
|
||
image: rustfs/rustfs:1.0.0-alpha.60
|
||
container_name: rustfs
|
||
restart: unless-stopped
|
||
volumes:
|
||
- /vol2/1000/rustfs_vol2:/data
|
||
- ./data:/app/data:rw
|
||
environment:
|
||
RUSTFS_VOLUMES: /data/rustfs0
|
||
RUSTFS_ADDRESS: ":9000"
|
||
RUSTFS_SERVER_DOMAINS: rfs.jmsu.top
|
||
RUSTFS_ACCESS_KEY: ${RUSTFS_ACCESS_KEY}
|
||
RUSTFS_SECRET_KEY: ${RUSTFS_SECRET_KEY}
|
||
RUSTFS_CONSOLE_ENABLE: "true"
|
||
# **仅绑定到本机 Tailscale IP**,供云端 Traefik 反代
|
||
ports:
|
||
- "${LOCAL_TS_IP}:9000:9000"
|
||
|
||
# -------- RustFS MCP 接口(假设走 HTTP on :9009)--------
|
||
rustfs-s3-toolkit:
|
||
image: hotwa/rustfs-s3-toolkit:latest
|
||
container_name: rustfs-mcp
|
||
restart: unless-stopped
|
||
environment:
|
||
MCP_PORT: "9009"
|
||
volumes:
|
||
- ./data:/app/data:rw
|
||
ports:
|
||
- "${LOCAL_TS_IP}:9009:9009"
|
||
|
||
# -------- Registrar:把 :9000 注册到 rfs.jmsu.top --------
|
||
registrar-rustfs:
|
||
image: hashicorp/consul:1.21
|
||
container_name: registrar-rustfs
|
||
restart: unless-stopped
|
||
depends_on:
|
||
- rustfs
|
||
volumes:
|
||
- ./registrar.sh:/registrar.sh:ro
|
||
environment:
|
||
# 指向“云端” Consul Server(通过 Tailscale)
|
||
CONSUL_HTTP_ADDR: "http://${CONSUL_SERVER_IP}:8500"
|
||
# 下面这 4 个由 registrar.sh 必填
|
||
SERVICE_NAME: "rustfs"
|
||
SERVICE_ADDR: "${LOCAL_TS_IP}"
|
||
SERVICE_PORT: "9000"
|
||
ROUTE_HOST: "rfs.jmsu.top"
|
||
# 可选项(HTTP/TCP、健康检查、入口等)
|
||
SERVICE_PROTOCOL: "http"
|
||
CHECK_TYPE: "http"
|
||
CHECK_PATH: "/"
|
||
CHECK_INTERVAL: "10s"
|
||
CHECK_TIMEOUT: "2s"
|
||
DEREG_AFTER: "1m"
|
||
TRAEFIK_HTTP_ENTRYPOINT: "websecure"
|
||
TRAEFIK_TCP_ENTRYPOINT: "tcp"
|
||
# TRAEFIK_CERT_RESOLVER 可在云端用 file/dynamic 统一配置,这里不强制
|
||
command: ["/bin/sh","/registrar.sh"]
|
||
|
||
# -------- Registrar:把 :9009 注册到 mcprfs.jmsu.top --------
|
||
registrar-mcprfs:
|
||
image: hashicorp/consul:1.21
|
||
container_name: registrar-mcprfs
|
||
restart: unless-stopped
|
||
depends_on:
|
||
- rustfs-s3-toolkit
|
||
volumes:
|
||
- ./registrar.sh:/registrar.sh:ro
|
||
environment:
|
||
CONSUL_HTTP_ADDR: "http://${CONSUL_SERVER_IP}:8500"
|
||
SERVICE_NAME: "mcprfs"
|
||
SERVICE_ADDR: "${LOCAL_TS_IP}"
|
||
SERVICE_PORT: "9009"
|
||
ROUTE_HOST: "mcprfs.jmsu.top"
|
||
SERVICE_PROTOCOL: "http" # 如果 MCP 走 TCP,请改成 "tcp" 并把 CHECK_TYPE 改为 tcp
|
||
CHECK_TYPE: "http"
|
||
CHECK_PATH: "/"
|
||
CHECK_INTERVAL: "10s"
|
||
CHECK_TIMEOUT: "2s"
|
||
DEREG_AFTER: "1m"
|
||
TRAEFIK_HTTP_ENTRYPOINT: "websecure"
|
||
TRAEFIK_TCP_ENTRYPOINT: "tcp"
|
||
command: ["/bin/sh","/registrar.sh"]
|