Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Depricated code in Dockerfile for Java language-specific guide

オープン 初心者向け
#26,484 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
78/100
issue の種類
ドキュメント
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
docker, docker-compose, java, spring-boot

調査の方向性

https://docs.docker.com/guides/java/ の Java ガイドから始め、特に抽出ステージと実行ステージに注目して Dockerfile を調べてください。コマンドをリンク先の Spring Boot Dockerfile に関するガイダンスと比較し、添付された Dockerfile を確認してください。ガイドに記載されたコマンドでイメージをビルドし、コンテナを起動できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

status/triage

Dockerfile.txt

Is this a docs issue?
  • My issue is about the documentation content or website
Type of issue

Information is incorrect

Description
1. Depricated -Djarmode in Spring Boot 4.1+ (?3.5+)

Following the guide a command:

docker compose up --build

,throws an error:

=> ERROR [extract 2/2] RUN java -Djarmode=layertools -jar target/app.jar 1.0s
[extract 2/2] RUN java -Djarmode=layertools -jar target/app.jar extract --destination target/extracted:
0.939 Error: Unsupported jarmode 'layertools'
0.939
Dockerfile:53

RUN java -Djarmode=layertools -jar target/app.jar extract --destination target/extracted

2. Copying extracted files into the runtime image’s filesystem root

After solving the first error, ocсurs a second one:

=> CACHED [extract 2/2] RUN java -Djarmode=tools -jar target/app.jar ext 0.0s
=> ERROR [final 3/6] COPY --from=extract build/target/extracted/dependen 0.0s
[final 3/6] COPY --from=extract build/target/extracted/dependencies/ ./:
Dockerfile:83
81 |
82 | # Copy the executable from the "package" stage.
83 | >>> COPY --from=extract build/target/extracted/dependencies/ ./
84 | COPY --from=extract build/target/extracted/spring-boot-loader/ ./
85 | COPY --from=extract build/target/extracted/snapshot-dependencies/ ./

failed to solve: cannot copy to non-directory: /var/lib/docker/buildkit/containerd-overlayfs/cachemounts/buildkit4075886367/lib

3. The container cannot start because of missed JarLauncher

After solving the second error, ocсurs a third one.

✔ Container spring-petclinic-server-1 Created 0.1s
Attaching to server-1
server-1 | Error: Could not find or load main class org.springframework.boot.loader.launch.JarLauncher
server-1 | Caused by: java.lang.ClassNotFoundException: org.springframework.boot.loader.launch.JarLauncher
server-1 exited with code 1

Docker desktop already has a registered container, but cannot start it.

Log: Error: Could not find or load main class org.springframework.boot.loader.launch.JarLauncher

Location

https://docs.docker.com/guides/java/

Suggestion

After all three changes container runs correct.

1. -Djarmode=tools with "--layers" instead of -Djarmode=tlayertools

The problem is use of depricated "layertools"
Remove support for the deprecated layertools jar mode #48568
Spring Boot / Reference / Packaging Spring Boot Applications / Container Images / Dockerfiles

Right line:
RUN java -Djarmode=tools -jar target/app.jar extract --layers --destination target/extracted

2. Add a workdir for application layers

Gordon's solution is from Spring documentation's example code:

The build fails while copying extracted files into the runtime image’s filesystem root, where they can collide with base-image paths such as /lib; I’ll isolate them under /application and retry.

# Line 68
# Keep the application layers separate from operating-system paths in the base image.
WORKDIR /application
3. Change the ENTRYPOINT

Gordon's solution is from Spring documentation's example code.
Change in the last line in Dockerfile.
From:
ENTRYPOINT [ "java", "org.springframework.boot.loader.launch.JarLauncher" ]
To
ENTRYPOINT [ "java", "-jar", "app.jar" ]

And rebuild the image.

P.S. Attached the final dockerfile in .txt format.

主要言語
Markdown
スター
4.7k
フォーク
8.5k
平均マージ
1日 22時間
マージ済み PR(30日)
148

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

docker/docs のほかの issue

docker/docs の issue をすべて見る

似ている issue

DevOps の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。