{"action":"created","issue":{"url":"https://api.github.com/repos/docker-library/java/issues/58","labels_url":"https://api.github.com/repos/docker-library/java/issues/58/labels{/name}","comments_url":"https://api.github.com/repos/docker-library/java/issues/58/comments","events_url":"https://api.github.com/repos/docker-library/java/issues/58/events","html_url":"https://github.com/docker-library/java/issues/58","id":121655282,"number":58,"title":"Things to consider for Java 9 and beyond","user":{"login":"brunoborges","id":129743,"avatar_url":"https://avatars.githubusercontent.com/u/129743?v=3","gravatar_id":"","url":"https://api.github.com/users/brunoborges","html_url":"https://github.com/brunoborges","followers_url":"https://api.github.com/users/brunoborges/followers","following_url":"https://api.github.com/users/brunoborges/following{/other_user}","gists_url":"https://api.github.com/users/brunoborges/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoborges/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoborges/subscriptions","organizations_url":"https://api.github.com/users/brunoborges/orgs","repos_url":"https://api.github.com/users/brunoborges/repos","events_url":"https://api.github.com/users/brunoborges/events{/privacy}","received_events_url":"https://api.github.com/users/brunoborges/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-12-11T07:34:46Z","updated_at":"2015-12-17T03:25:34Z","closed_at":null,"body":"After reading some of the issues, I wanted to share some thoughts on how to drive this image in the future (before it's too late) to simplify maintainability and also adoption.\r\n\r\n## Maintain only JDK images\r\nProviding a JRE-only image is unnecessary. It does not save in substantial image size and does not add features, only removes them. There is nothing JRE can do that JDK can't.\r\n\r\n## Use a different Linux base image distribution\r\nThe current image is huge (>600MB) for something that could be smaller than 100MB if using Alpine Linux. The goal of the image should be to run most of the server-side Java applications. Users who want something different should build their own images.\r\n\r\n[See this example](https://github.com/glassfish/docker/blob/master/openjdk/Dockerfile)\r\n\r\nThe image size of OpenJDK 8 on Alpine Linux is 146.5MB\r\n\r\n## If can't change distro, trim it removing packages\r\nThe default image should contain basically only JDK and a very small Linux environment with a package manager. The environment is that makes the existing images big. If users want something else, they should apt-get / yum / apk / deb / whatever they want.\r\n\r\nI understand the drawbacks of such changes, but it is quite obvious that the way it is right now is unsustainable. If this repository keeps going like this, next users will start to ask for images with the [OpenJDK documentation](https://packages.debian.org/wheezy/openjdk-7-doc) or [demos](https://packages.debian.org/wheezy/openjdk-7-demo)\r\n\r\nm2c"},"comment":{"url":"https://api.github.com/repos/docker-library/java/issues/comments/165326939","html_url":"https://github.com/docker-library/java/issues/58#issuecomment-165326939","issue_url":"https://api.github.com/repos/docker-library/java/issues/58","id":165326939,"user":{"login":"brunoborges","id":129743,"avatar_url":"https://avatars.githubusercontent.com/u/129743?v=3","gravatar_id":"","url":"https://api.github.com/users/brunoborges","html_url":"https://github.com/brunoborges","followers_url":"https://api.github.com/users/brunoborges/followers","following_url":"https://api.github.com/users/brunoborges/following{/other_user}","gists_url":"https://api.github.com/users/brunoborges/gists{/gist_id}","starred_url":"https://api.github.com/users/brunoborges/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brunoborges/subscriptions","organizations_url":"https://api.github.com/users/brunoborges/orgs","repos_url":"https://api.github.com/users/brunoborges/repos","events_url":"https://api.github.com/users/brunoborges/events{/privacy}","received_events_url":"https://api.github.com/users/brunoborges/received_events","type":"User","site_admin":false},"created_at":"2015-12-17T03:25:34Z","updated_at":"2015-12-17T03:25:34Z","body":"I say it is unsustainable because: \r\n - the \"official\" images are not really \"official\" since they are not managed by the project owners of the actual software that goes into the image (for both Linux distro and Java). \r\n - there is a great number of Java versions. And it will only increase. If someone wants a specific version, they can always download that and build their own image. Maintaining all versions on a top-level repository is unnecessary. In fact, the top-level images would do a great favour to the Java community to keep published only the latest updates of the major versions.\r\n - the image should be about the JDK (which includes all necessary tools to all use cases). If someone wants JRE only, the user creates that by itself. Thus reducing the need to keep track of so many versions and editions.\r\n - the image should not include a bloated Linux distro, although it is a good idea to keep a distro that has a package manager. But keeping as little installed software as possible. If someone wants curl / wget / unzip, they should extend the image and build their own.\r\n\r\nAnd since OpenJDK 9 is not final, I vote for a change on that image, to use an even smaller Linux distro. \r\n\r\nPlus, Java 9 is designed to be modular. How many images will there be for Java 9? If it continues like it is today, users will ask for a \"minimum\" Java 9 with core, then a \"with-net-modules\", then a \"with-UI-modules\". It will be a huge amount of unnecessary work.\r\n\r\n**Here's a question to Docker Hub maintainers**\r\nHow many times each of these **java** tags were downloaded?\r\nDocker Hub only shows how many pulls the entire repo got. It does not show # of downloads per tag."}}