51 lines
2.4 KiB
YAML
51 lines
2.4 KiB
YAML
# MoShiro Probe。Docker 和 rootless/rootful Podman 共用。
|
||
#
|
||
# 用法(面板「添加 Probe」会给出带好参数的 .env 内容):
|
||
# mkdir moshiro-probe && cd moshiro-probe
|
||
# 把面板给的 .env 内容存成 .env,再下载本文件为 compose.yaml
|
||
# podman compose up -d # Docker 用 docker compose
|
||
# 更新:podman compose pull && podman compose up -d (身份和配置在命名卷里,不会动)
|
||
# 固定版本:在 .env 里写 MOSHIRO_VERSION=<版本号>;想要更严,写成 MOSHIRO_VERSION=<版本号>@sha256:<digest>。
|
||
# macOS、Windows 的 Docker Desktop 没有宿主网络:面板给的 .env 里已经写了 MOSHIRO_NETWORK_MODE=bridge。
|
||
# .env 里的 MOSHIRO_SERVER、MOSHIRO_JOIN(只在第一次启动用来注册,之后可以删掉)、MOSHIRO_GENESIS、MOSHIRO_CONTROLLERS、MOSHIRO_NAME 原样传进容器。
|
||
# 说明见 docs/ops/deployment.md。
|
||
services:
|
||
probe:
|
||
image: ${MOSHIRO_IMAGE:-registry.oeo.one/moshiro/moshiro-probe}:${MOSHIRO_VERSION:-latest}
|
||
container_name: moshiro-probe
|
||
restart: unless-stopped
|
||
init: true
|
||
network_mode: ${MOSHIRO_NETWORK_MODE:-host}
|
||
# .env 里的变量原样传进容器(不用带默认值的变量替换:有的 compose 提供者,比如 podman-compose,不替换环境变量里的默认值)
|
||
env_file:
|
||
- .env
|
||
environment:
|
||
HOST_PROC: /host/proc
|
||
HOST_SYS: /host/sys
|
||
HOST_ROOT: /host/root
|
||
volumes:
|
||
- probe-config:/etc/moshiro
|
||
- probe-status:/etc/moshiro/update-status:ro
|
||
- /etc/os-release:/etc/os-release:ro
|
||
# 主机资源占用(CPU、内存、磁盘、网卡流量、运行时长,只有汇总数字,没有型号和 IP):只读挂载宿主机的 /proc、/sys 和根目录;
|
||
# 不想上报:在 probe.json 里写 reporting.host_stats=false,再删掉下面三行挂载。Docker Desktop 上看到的是它的虚拟机,不是 Windows 或 macOS 本身。
|
||
- /proc:/host/proc:ro
|
||
- /sys:/host/sys:ro
|
||
- /:/host/root:ro
|
||
read_only: true
|
||
tmpfs:
|
||
- /tmp:rw,noexec,nosuid,size=64m,mode=1777
|
||
security_opt:
|
||
- label=disable
|
||
- no-new-privileges:true
|
||
cap_drop:
|
||
- ALL
|
||
# Linux ICMP 使用 ping sockets;ping_group_range 需允许容器映射后的 GID。
|
||
stop_grace_period: 20s
|
||
|
||
volumes:
|
||
probe-config:
|
||
name: moshiro-probe-config
|
||
probe-status:
|
||
name: moshiro-probe-status
|