0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerHub の古すぎるイメージをダウンロードできるようにする (WSL2 - PHP5.3.29)

Last updated at Posted at 2025-07-31

あらすじ

5年前くらいから業務委託としてちょいちょい参画させていただいているクライアントさんのWEBサービスはとってもレガシーで、PHP5.3, PHP5.5 を普通に使っています。

まぁそれで僕のように昔からエンジニアやっててPHP4とかも触っていた経験があるような人は重宝される訳です。

最近PCが重くなっていたのでリフレッシュし、環境構築からやり直ししてみたらエラーが発生しました。
イメージをダウンロードできず、ローカル環境を構築できません。

解決方法は下の方に書いてあるので、内容がどうでもいい方は下までスクロールして下さい。

エラー内容

target admin: failed to solve: failed to load cache key: Pulling Schema 1 images have been deprecated and disabled by default since containerd v2.0. As a workaround you may set an environment variable CONTAINERD_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE=1, but this will be completely removed in containerd v2.1.

Schema1 とか今まで Docker 使ってて初めて聞いた単語ですが、調べてみると DockerHub に保管されているイメージのレイヤー管理にバージョンがあるということですかね。

バージョン 特徴 状況
Schema1 古い形式、JSONでレイヤー管理 非推奨
Schema2 Digest対応、レイヤーを明示的に保持 現在の主流

DockerHub 上で確認

Layers が (0) で表示されないものが、Schema1 になるらしいとのこと。
古いレイヤー管理方式なので表示できなくなっているということっぽい。

DockerHub - PHP5.3.29

php5.3.29.png

ChatGPT さんが提示してくれた解決方法(僕は駄目でした)

一時的に Schema1 をダウンロード出来るようにして build を行う。
これで通る人も居るかもしれないので掲載。

CONTAINERD_ENABLE_DEPRECATED_PULL_SCHEMA_1_IMAGE=1

解決した方法

skopeo コマンドのインストール

sudo apt update
sudo apt install skopeo

Schema1 のイメージを Schema2 に変換しながらダウンロード

skopeo copy --format v2s2 \
  docker://docker.io/library/php:5.3.29-apache \
  docker-daemon:php:5.3.29-apache

そのままビルドする

一度イメージをローカルに落とせば、次回以降は再ビルドしようと問題なくなります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?