https://github.com/monosoul/jvm-in-docker
A repo to demonstrate how to use jlink
https://github.com/monosoul/jvm-in-docker
docker java jvm
Last synced: about 1 year ago
JSON representation
A repo to demonstrate how to use jlink
- Host: GitHub
- URL: https://github.com/monosoul/jvm-in-docker
- Owner: monosoul
- Created: 2022-04-25T17:40:49.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-26T11:42:23.000Z (about 4 years ago)
- Last Synced: 2025-04-17T20:39:31.740Z (about 1 year ago)
- Topics: docker, java, jvm
- Language: Dockerfile
- Homepage: https://blog.monosoul.dev/2022/04/25/reduce-java-docker-image-size/
- Size: 6.38 MB
- Stars: 10
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jvm-in-docker
A repo to demonstrate how to use jlink
---
To build image with JDK:
`docker build -t jvm-in-docker:jdk -f jdk.dockerfile .`
To run JDK image:
`docker run --rm -p 8080:8080 jvm-in-docker:jdk`
---
To build JRE image:
`docker build -t jvm-in-docker:jre -f jre.dockerfile .`
To run JRE image:
`docker run --rm -p 8080:8080 jvm-in-docker:jre`
---
To analyze dependencies:
```shell
mkdir app
cd ./app
unzip ../app.jar
cd ..
jdeps --print-module-deps --ignore-missing-deps --recursive --multi-release 17 --class-path ./app/BOOT-INF/lib/* ./app.jar
rm -Rf ./app
```
Should give you:
`java.base,java.management,java.naming,java.net.http,java.security.jgss,java.security.sasl,java.sql,jdk.httpserver,jdk.unsupported`
To build slim JRE image:
`docker build -t jvm-in-docker:jre-slim -f jre-slim.dockerfile .`
To run slim JRE image:
`docker run --rm -p 8080:8080 jvm-in-docker:jre-slim`
---
To build slim JRE image with automated dependency analysis:
`docker build -t jvm-in-docker:jre-slim -f jre-slim-auto.dockerfile .`
--
