secretary-bot s6移行
背景
secretary-botをDockerからs6サービスに移行
問題
- サービスが起動失敗(exitcode 1)
- 原因: runスクリプトがrootで実行され、PyYAMLが見つからない
解決策
s6-setuidgid abcを追加してabcユーザーで実行uv run --no-project bot.pyに変更UV_CACHE_DIR環境変数でキャッシュ場所を指定
最終的なrunスクリプト
bash
#!/command/execlineb -P
cd /config/.openclaw/workspace/project/secretary-bot
fdmove -c 2 1
exec s6-setuidgid abc env UV_CACHE_DIR=/config/.openclaw/workspace/project/secretary-bot/.cache uv run --no-project bot.pyサービス構成
/config/s6-services/secretary-bot
→ /config/.openclaw/workspace/project/secretary-bot学び
- s6サービスは適切なユーザー権限で実行する必要がある
- uv runは
--no-projectでプロジェクトビルドをスキップできる - キャッシュ権限問題は環境変数で回避可能