― 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開発の成功体験として得られるもの、そして将来的な拡張の展望を描きます。