Skip to content

使い捨てコンテナ(サンドボックス)内の「タイムゾーン・身元(Git ID)喪失」とインフラによる自動同期設計

1. 概要

AIエージェントの検証や自動コミットのために使い捨てのコンテナ(Docker等)を利用する際、コンテナ側の「初期化漏れ」は、AIに深刻な認知の混乱をもたらす。 特に、タイムゾーンがUTCにリセットされることによる「日付認識のズレ」(anthropics/claude-code#47160)や、Git ID未設定による「コミット自動実行のクラッシュ」(masuda-masuo/sunaba#108)は、自律開発システムにおけるインフラ初期化の盲点である。 本稿では、コンテナ環境特有の「時間と身元の喪失」バグを分析し、sunaba 等のインフラ側が透過的に実行すべき自動同期(マウント)設計について考察する。


2. インシデントの分析:コンテナ特有の「認知とアイデンティティ」の崩壊

2.1. タイムゾーンのズレが引き起こす「日付のハルシネーション」

自律型エージェント(Claude Code等)が稼働する仮想コンテナのデフォルト時刻がUTC(世界協定時)のままで、ユーザーの生活圏(JST: 日本標準時)と9時間の乖離がある場合、以下のバグが発生する(claude-code#47160)。

  • 日本時間の午前00:00〜08:59までの間に実行された日次バッチやAIエージェントのセッションにおいて、システムがAIに渡す「現在の日付」がUTC基準となるため、**「1日前の日付」**として誤認識される。
  • AIは、JST基準の日付ログやカレンダーと食い違うレポートを出力し、ハルシネーション(カレンダーのバグ)を引き起こす。
  • この結果、ユーザー側は「AIに正しい時間を認知させるため」に、指示ファイル(CLAUDE.md)の初期化ステップに TZ=Asia/Tokyo date コマンドの実行を強制し、出力に現在時刻を必ず自己記載させるという、泥臭いプロンプトハックで対応せざるを得なくなった。

2.2. Git Identity未設定による自動コミット(VCS)のクラッシュ

使い捨てのコンテナ内でエージェントを走らせる際、コンテナ側のGitにユーザーの名前(user.name)やメールアドレス(user.email)がコピーされていないと、AIが修正コードを自動コミットする処理でクラッシュが発生する(sunaba#108)。

  • エラー: Author identity unknown などのGit例外が発生し、自律コミット(submit等)が失敗する。
  • AIはエラーに対処するために、毎回手動で git config --global コマンドを実行するリトライループに陥り、自律開発の体験が損なわれる。

3. sunaba にみる「時間と身元の自動転写」による解決

コンテナを「まっさらな(Vanilla)状態」でただ立ち上げるだけでは、AIエージェントに不必要な混乱(時間の再確認、手動Git設定など)を強いることになる。 sunaba は、コンテナの起動(init)レイヤーで、ホストPC側の環境設定を透過的(自動的)にマウントし、AIの目と手を最初から正しい設定で満たしている。

3.1. ホストマシンのタイムゾーン強制同期

  • sunaba のコンテナ起動パラメータ(または Docker 実行時のボリュームマウント)において、ホストPC側の /etc/localtime および /etc/timezone を、コンテナ内部へ読み取り専用(ReadOnly)で直接マウントする。
  • これにより、コンテナ内部のOS時刻は、手動の環境変数設定をすることなく自動的にホストと同一のローカルタイム(Asia/Tokyo等)に同期され、カレンダーの1日ズレや未来・過去へのGit履歴のねじれが構造的に完全防止される。

3.2. Git Config の自動注入(アイデンティティマウント)

  • AIエージェントにコミットを行わせる前に、ホストPC上の ~/.gitconfig をコンテナ内に自動でコピーまたはマウントする。
  • または、mcp-launcher 等の認証仲介デーモンが、ホストのGit Identity設定から user.nameuser.email を抽出し、コンテナ起動時に動的に注入する。
  • AIエージェントはコンテナに入った瞬間から、ユーザー自身であるかのように正しい署名(Git ID)で安全に VCS commit を自動実行できる。

4. 結論

使い捨てコンテナは検証環境として優れているが、AIエージェントに「時間」と「身元」の不整合を突発的に与えてしまい、認知不整合(ハルシネーション)を誘発する。 sunaba が構築した 「コンテナのライフサイクル開始時に、ホストの /etc/localtime~/.gitconfig を自動的に透過マウントする」 というインフラ設計は、AIに余計な設定リトライをさせず、起動した瞬間から「正しい時間軸」と「正しい身元」で高速に動作させるための、極めて実用的でエレガントな「知能の初期化パターン」であるといえる。


5. 参考文献 / 一次情報

Shiori pointer-RAG automation experiment.