※当サイトの記事には、広告・プロモーションが含まれます。

WSL 2のRocky LinuxにOpenJDK 21を含んだDockerコンテナを作成する

gigazine.net

⇧ Fossilというバージョン管理ツールがあるのを初めて知りましたわ。

WSL 2のRocky LinuxにOpenJDK 21を含んだDockerコンテナを作成する

久々に、Javaに触れようと思ったのだけど、

rheb.hatenablog.com

長年、Docker Hubの 公式イメージを構築する人たちは、Eclipse AdoptiumなどからOpenJDK Java SEアップデートバイナリを取り出し、独自のイメージを構築していました。しかし、2022年7月、Docker Hubのイメージ構築者は、この人気のあるイメージの非推奨を発表しました

Docker HubのOpenJDKイメージの利用を更新するためのアドバイス - 赤帽エンジニアブログ

OpenJDK は、アップデートプロジェクトから直接バイナリアップデートを提供することはありません。2022年7月以降、これらの長期サポートされるJavaアップデートプロジェクトは、実行可能なOpenJDKバイナリを構築し配布するためにEclipse Adoptiumに左右されます。

Docker HubのOpenJDKイメージの利用を更新するためのアドバイス - 赤帽エンジニアブログ

⇧ DockerイメージでOpenJDKは利用できないっぽいと。

DistrolessのDockerイメージだと、

github.com

⇧ まだ、JDK 21に対応していないっぽい。

で、Eclipse TemurinのDockerイメージは、

hub.docker.com

⇧ ベースイメージが、Ubuntuというのが微妙...

とりあえず、サイズが大きくなってしまうけども、Rocky LinuxがベースイメージのDockerコンテナを作るためのDockerfileを用意することにします。

ちなみに、

www.mathkuro.com

⇧ 上記サイト様にありますように、minimalなOS(Operation System)のイメージだと、パッケージ管理ツールが独特でハマりどころがあるということで通常のOS(Operation System)のイメージを利用することにします。

「WSL 2(Windows Subsystem for Linux 2)」をRocky Linuxの起動。

SSH接続。

Dockerfileを作成。

JDK 21を含んだDockerイメージを作成。

⇧ イメージサイズが1GBぐらいになっちゃうのは致し方ないと...

Dockerコンテナの作成・起動。

⇧ OpenJDKのバージョン21がインストールできているようです。

Visual Studio Codeからも接続できてます。

実際にDockerのようなコンテナでJavaを使う場合に、どうするのが良いのか分からんですが、

docs.docker.jp

  • 適切なベースイメージで始めましょう。例えば、 JDK が必要なら、一般的な ubuntu イメージに openjdk をインストールするのではなく、公式 openjdk イメージをベースにするのを検討します。

https://docs.docker.jp/develop/dev-best-practices.html

⇧ ドキュメントが更新されてないんよね...

OpenJDKのベースイメージは、

github.com

DEPRECATED

This image is officially deprecated and all users are recommended to find and use suitable replacements ASAP. Some examples of other Official Image alternatives (listed in alphabetical order with no intentional or implied preference):

See docker-library/openjdk#505 for more information.

https://github.com/docker-library/openjdk

⇧ 非推奨ってなってるのにな...

2024年1月2日(火)追記:↓ ここから

Linux環境だと、

gyamin.hatenablog.com

⇧ javacは別パッケージをインストールする必要があったので、インストール。

2024年1月2日(火)追記:↑ ここまで

毎度モヤモヤ感が半端ない...

今回はこのへんで。