テクノロジー · 実用ガイド
Docker build の COPY で source not found?Dockerfile 修正前に実際の context を監査
COPY が読めるのは checkout、生成、ignore 後の build context だけです。command と snapshot を保存し、一つの境界だけを修正します。

Docker COPY failure は host に file がない証明ではありません。BuildKit が受け取った filtered context にないか、別の stage、image、named context を読んでいます。
command と error を保存し、context type、checkout、ignore、source kind を証明します。context を広げたり secret を含めたりせず、一つだけ修正します。
command と context を保存
error、cwd、version、builder、Dockerfile、最後の context argument を記録します。
local、Git、tar、named、empty context を分類します。
checkout と生成を証明
case、sparse checkout、submodule、LFS、checkout path を実際の snapshot で確認します。
生成 file の場所を記録し、default Git context が runner mutation を読まない点を確認します。
有効な ignore を計算
root と Dockerfile-specific ignore を順に読み、優先と last match を確認します。
broad rule を消したり secret を COPY したりせず、最小 exception にします。
default と --from を分離
plain COPY は default context、--from は stage/image/named context root を読みます。
`../` では逃げず、必要なら狭い named context を宣言します。
一変更して検証
context、checkout、generation、case、ignore、Git/path、--from の一つだけを直します。
fresh build record と最終 artifact を確認し、CI でも同じ契約を再現します。
