Sign inSign up

ethco/jlinkmc

By ethco

•Updated about 5 years ago

OpenJDK-derived Java environment using a minimal JVM, suitable for Minecraft and PaperMC

Image
1

2.3K

ethco/jlinkmc repository overview

Docker

⁠Tag Equivalence

  • latest stable jdk15
  • oldstable jdk14
  • ea jdk16

Stability refers to the JDK, not to the container, which is perpetually unstable.

⁠Concept

Using this image to prepare a PaperMC⁠ or other Minecraft server on an Alpine base can substantially reduce the total size of your image. The code used was based on posts from Matthew Gilliard⁠'s blog (like this one⁠), themselves based on work on AdoptOpenJDK by Dinakar Guniguntala (dinogun⁠) and others.

The latest tag is NOT an Alpine-native muslc (Portola) Java build. Instead, it uses Sasha Gerrand⁠'s Gnu C library compatibility layer package for Alpine.

The transition to Portola or another muslc build will occur when an Alpine JDK reaches General Availability and will result in further size reduction. Unfortunately, Alpine JDKs havent' been making the testing volume threshold for GA status, which is why they keep getting rolled to the next EA candidate. The build using the early access JDK can be found in the ea tag.

⁠Compressed Size Comparison of linux/amd64 images

(As of 2020-10-18)

  • ethco/jlinkmc:jdk16 - 53.76 MB

  • ethco/jlinkmc:jdk15 - 73.09 MB

  • AdoptOpenJDK/openjdk15:alpine - 206.99 MB

  • AdoptOpenJDK:latest - 240.61 MB

⁠Contents

This image was jlinked using the following Java modules, which, to the best of my knowledge, are the minimum required to run PaperMC:

  • java.base
  • java.compiler
  • java.desktop
  • java.logging
  • java.management
  • java.naming
  • java.rmi
  • java.scripting
  • java.sql
  • java.xml
  • jdk.sctp
  • jdk.unsupported
  • java.instrument

Minecraft itself requires all of the above except java.instrument

⁠Goals

  • Implement functionality testing for successfully-built images
  • Add support for PGP-based signature verification, despite its shortcomings⁠

⁠Source

I track my own edits on GitHub⁠. Builds for the current GA JDK, the previous JDK, and the current EA JDK are automated by GitHub Actions. Issues are enabled, so if something doesn't work, let me know! Testing and any other suggestions are always welcomed.

Tag summary

Content type

Image

Digest

Size

72.7 MB

Last updated

about 5 years ago

docker pull ethco/jlinkmc