📝

Dockerイメージの uv not found エラー

2024/11/16に公開

uv not found

先日リリースされた uv 0.5.0 には破壊的な変更が含まれており,その一つが uv インストーラーの実行ファイル保存ディレクトリの変更です.従来の ~/.cargo/bin から ~/.local/bin に変更されました (uv リリースノート).

この変更により,Dockerfile でインストーラーを使ってバージョンを指定せずに uv をインストールしている場合,ビルド時に Command 'uv' not found エラーが発生し,ビルドが失敗するようになりました.

問題となる Dockerfile の例:

RUN sh /uv-installer.sh && rm /uv-installer.sh

# Ensure the installed binary is on the `PATH`
ENV PATH="/root/.cargo/bin/:$PATH"

バージョンの明示を怠った罰ですね...

解決策

解決策はいくつかあります.単にパスを変更するのも良いですが,公式イメージから実行ファイルをコピーするように変更するのが最もシンプルです.バージョンの明示を忘れないようにしましょう.

COPY --from=ghcr.io/astral-sh/uv:0.5.2 /uv /uvx /bin/

https://docs.astral.sh/uv/guides/integration/docker/

Discussion