― Botを動かす/直す/止めるための「手元マニュアル」
ここでは、MMBotの開発・運用で最も頻繁に触れるファイル・CLIコマンド・チェックポイントを一覧化しました。
トラブル時・改修時・メンテ時にすぐ参照できるようにすることで、再起動忘れや設定ミスなどを未然に防げます。
📁8.1 触るファイルとその役割
| ファイル / ディレクトリ | 役割 | 変更時の注意点 | 
|---|---|---|
| .env.prod | Botの全パラメータ(APIキー/シンボル/リスク条件など) | 変更後は 必ず再ビルド: down && up -d --build | 
| config_mainnet.tpl | JSONテンプレートの雛形。env変数がここに埋め込まれる | $VARを追加したら、.env.prodも更新する | 
| core.py | メインの取引ロジック(MM処理・スプレッド判定など) | 修正後は docker compose restartで反映 | 
| entrypoint.sh | 起動時のテンプレ生成+検証スクリプト | 通常は触らない/変更時は慎重にテストを | 
| logs/ | 実行ログが日次ファイルとして保存される場所 | 肥大化注意。定期的に整理してもOK | 
| mmtrades_mainnet.db | SQLite形式のトレード履歴DB(コンテナ内のみ) | 永続化する場合は volumeマウントの設定が必要 | 
💻8.2 よく使う Docker コマンド集(実運用向け)
| コマンド | 目的 | 解説 | 
|---|---|---|
| docker compose up -d --build | 初回起動/設定変更後の起動 | .env.prodやDockerfile変更後に必須。ログで構成の確認を。 | 
| docker compose down | 完全停止 | コンテナ+ネットワーク削除。自動再起動も止まる。 | 
| docker compose restart | ロジック修正後の即反映 | core.pyなどコードのみ変えたときに便利(再ビルド不要)。 | 
| docker compose logs -f mmbot | Botの実行ログをリアルタイム監視 | Fill状況、スプレッド、Slack通知の有無、例外など。 | 
| docker compose ps | コンテナの現在の状態を確認 | 実行中か?exitしてるか?何秒前に起動したか?などがわかる。 | 
| docker inspect mmbot | 詳細状態・環境の確認 | ENVやvolume、起動コマンド、RestartPolicyの確認に使える。 | 
| `docker compose exec mmbot printenv | sort` | 反映された環境変数を一覧で確認 | 
| docker compose exec mmbot cat config_mainnet.json | テンプレから生成された設定を確認 | entrypoint.shによるJSONが正しく生成されたかを見る。 | 
| docker stats | リソース使用状況(CPU/メモリ)を監視 | Botが暴走してないか、過剰消費していないかを確認。 | 
| docker compose stop | “優しく”止めたいとき | シグナルを送ってソフトに停止。ログ記録や後処理をさせたいとき。 | 
| docker compose kill | どうしても止まらないとき | 強制終了。通常は使わない。最終手段。 | 
🛑8.3 よくあるミスとその対策
| 現象 | 原因 | 対策 | 
|---|---|---|
| JSON構文エラーで即落ち | .env.prodのカンマ忘れなどでjqに失敗 | config_mainnet.jsonを直接確認+再起動 | 
| Slack通知が来ない | SLACK_WEBHOOK_URL未設定/環境変数未注入 | .env.prodに明示+printenvで確認 | 
| ロジックを変更したのに挙動が変わらない | core.py修正後に再起動していない | docker compose restartで反映 | 
| 無限再起動ループ | exit 1によるエラー終了が続く | docker compose logsで原因確認 → 修正後downで止める | 
📎8.4 運用サイクル別:何を触ればいいか早見表
| やりたいこと | 触るファイル | 実行コマンド | 
|---|---|---|
| APIキーや建玉制限を変えたい | .env.prod | down && up -d --build | 
| ロジックを変更したい | core.py | restart | 
| テストから本番へ移行したい | .env.prodのSYMBOLやMMBOT_MODE | down && up -d --build | 
| 一度Botを止めたい | ― | docker compose down | 
| 実行ログを見たい | logs/ | docker compose logs -f | 
🧵まとめ:現場では「コードよりも構成・再起動」の方が重要になる
- .env.prodはBotの「心臓」
- core.pyはBotの「頭脳」
- entrypoint.shはBotの「免疫系」
- 再起動/再ビルドの判断を間違えないだけで、Bot運用の8割は成功
このセクションをリファレンス的に保存しておけば、エラー対応・検証・再起動の精度が一気に上がります。
🔚次回予告(セクション9)
次回はいよいよシリーズ総まとめとして、この構成を採用する意味、Bot開発の成功体験として得られるもの、そして将来的な拡張の展望を描きます。
