Files
headscale/docker-compose.yml
Timmy 87f52414ec fix: pin headscale image to v0.29.0 and drop removed config keys
新版 headscale 移除了部分設定鍵,搭配 watchtower 自動更新 :latest
導致容器啟動即 FATAL、無限重啟,所有節點離線。

- config.yaml: 註解 randomize_client_port(FATAL)與 ephemeral_node_inactivity_timeout(已改名)
- docker-compose.yml: image 釘到 v0.29.0,停止破壞性自動升級
- OPERATIONS.md / CLAUDE.md: 補上故障排除與升級注意事項

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 18:10:31 +08:00

51 lines
1.1 KiB
YAML

services:
headscale:
# 釘版本避免 watchtower 自動套用破壞性更新(見 OPERATIONS.md → 故障排除)。
# 升級時手動改 tag 並先看 CHANGELOG 的 BREAKING 段落。
image: headscale/headscale:v0.29.0
container_name: headscale
restart: unless-stopped
networks:
- shared-net
# 環境變數
environment:
- TZ=Asia/Taipei
# 健康檢查
healthcheck:
test: ["CMD-SHELL", "headscale version >/dev/null 2>&1 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# 日誌配置
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# 卷掛載
volumes:
- ./config:/etc/headscale:ro
- ./data:/var/lib/headscale
- /etc/localtime:/etc/localtime:ro
# 埠位映射
ports:
- "8080:8080" # HTTP API
- "9090:9090" # Metrics
- "50443:50443" # gRPC
# 標籤配置
labels:
- "com.centurylinklabs.watchtower.enable=true"
- "description=Headscale WireGuard control plane"
networks:
shared-net:
external: true