説明
相対パスのWORKDIRは直前の作業ディレクトリを基準に解決され、ベースイメージの設定を引き継ぐ場合もあります。有効な構文ですが、基準となる場所が変わるとコマンドの実行場所も変わることがあります。
想定される影響
意図しない場所にファイルをコピーしたりコマンドを実行したりして、ビルドエラーが起きるおそれがあります。
対処方法
各ステージで作業ディレクトリの基準を絶対パスで指定してください。その後に相対パスを使う場合は、基準となる場所と解決後のパスが意図した値か確認してください。
例
例では、/usr/srcの後のWORKDIR appは/usr/src/appになるため、どちらの構成も同じ場所を使います。絶対パスにまとめると、前の宣言への依存を減らせます。
変更前
dockerfile
FROM node:22-alpine
WORKDIR /usr/src
WORKDIR app
COPY . .
変更後
dockerfile
FROM node:22-alpine
WORKDIR /usr/src/app
COPY . .