
2022年10月に発表された NVIDIA の新しいコンテナイメージサポートポリシーは、CUDA コンテナイメージを日常の開発フローで利用している開発者にとって大きな課題となっています。イメージが EOL(サポート終了)を迎えると Docker Hub と NGC から削除され、それまで問題なく動いていたビルドがイメージレイヤーの欠落によって壊れてしまうためです。
エラーは次のような形で現れます。
Error response from daemon: manifest for nvidia/cuda:12.0.1 not found: manifest unknown: manifest unknown
古い NVIDIA コンテナイメージをプルしようとして「repository does not exist or may require 'docker login'」というエラーに遭遇し、頭を抱えた開発者は少なくありません。これは、イメージが EOL を迎えて削除されたために起こります。そのイメージに依存していたビルドは、そのまま動かなくなります。複雑なビルドパイプラインを持つプロジェクトや、古いバージョンの CUDA Toolkit に依存しているプロジェクトでは、特に深刻な影響が出ます。
さらに NVIDIA は、公開済みのタグを後から更新することもあります。これもビルドを壊す原因になります。
NVIDIA は2022年10月28日に、CUDA コンテナイメージの新しいサポートポリシーを発表しました。このポリシーは NVIDIA 側の運用を楽にする一方で、コンテナイメージに依存する開発者には影響を及ぼします。
NVIDIA の新しいポリシーは、次のような課題への対応を目的としています。
これらの主張には妥当な面もありますが、結果としてビルドは予期しないタイミングで壊れ、開発者が自分で制御できなくなってしまいます。
StableBuild は、Docker イメージを無期限にキャッシュするプラットフォームを提供することで、この問題を解決します。NVIDIA が公式リポジトリからイメージを削除・上書きしたあとでも、StableBuild を利用していればそのイメージにアクセスし、プルし続けられます。
仕組みは次のとおりです。
StableBuild を使えば、NVIDIA の EOL ポリシーによって公式リポジトリからイメージが削除されても、開発フローを止めずに済みます。
StableBuild には Community プランがあり、イメージのキャッシュ機能を無料で利用できます。NVIDIA のイメージ削除ポリシーによる混乱から開発フローを守るうえで、有力な選択肢になります。
今すぐ無料で StableBuild に登録して、コンテナイメージの提供状況が変わってもプロジェクトが影響を受けない状態にしましょう。