友とコーヒーと嘘と胃袋

Docker

OpenJDK 8のImage not foundと代替策

OpenJDK 8のImage not foundと代替策

OpenJDK 8のImage not foundと代替策

4~5年前にJava 8で開発していたアプリを動かそうとしたところ、下記のエラーが発生した。

[+] Running 1/1
 ! app Warning pull access denied for <<APP_NAME>>, repository does not exist or may require 'docker...              2.2s
[+] Building 1.7s (4/4) FINISHED
 => [internal] load local bake definitions                                                                         0.1s
 => => reading from stdin 520B                                                                                     0.1s
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 662B                                                                               0.0s
 => ERROR [internal] load metadata for docker.io/library/openjdk:8-jdk                                             1.3s
 => [auth] library/openjdk:pull token for registry-1.docker.io                                                     0.0s
------
 > [internal] load metadata for docker.io/library/openjdk:8-jdk:
------
Dockerfile:1

--------------------
   1 | >>> FROM openjdk:8-jdk
   2 |
   3 |     RUN apt-get update \
--------------------

failed to solve: openjdk:8-jdk: failed to resolve source metadata for docker.io/library/openjdk:8-jdk: docker.io/library/openjdk:8-jdk: not found

View build details: docker-desktop://dashboard/build/default/default/lbmrg2ut60ei1y8k3p5t54w5f

Dockerのイメージリポジトリを確認したところ、2022年7月以降、OpenJDK 8/11のビルド提供が終了してしまったらしい。

This image is officially deprecated and all users are recommended to find and use suitable replacements ASAP.
 (このイメージは公式に非推奨となり、すべてのユーザーはできるだけ早く適切な代替イメージを見つけて使用することをお勧めします。)

https://hub.docker.com/_/openjdk
https://github.com/docker-library/openjdk/issues/505

ということで、以下の対応を実施した。

  • イメージ利用元の変更(openjdk:8-jdk→amazoncorretto:8-al2023-jdk)
  • パッケージマネージャーの変更(apt-get→dnf)

今後も同様の事象が発生すると思われますので、ビルドイメージはどこかに保持しておきましょう…