All Projects → AdoptOpenJDK → Openjdk Docker

AdoptOpenJDK / Openjdk Docker

Licence: apache-2.0
Scripts for creating Docker images of OpenJDK binaries.

Projects that are alternatives of or similar to Openjdk Docker

Jenkinsfile Runner
A command line tool to run Jenkinsfile as a function
Stars: ✭ 727 (+143.14%)
Mutual labels:  hacktoberfest, docker-image
Azurestorageexplorer
☁💾 Manage your Azure Storage blobs, tables, queues and file shares from this simple and intuitive web application.
Stars: ✭ 88 (-70.57%)
Mutual labels:  hacktoberfest, docker-image
Metasfresh
We do Open Source ERP - Fast, Flexible & Free Software to scale your Business.
Stars: ✭ 807 (+169.9%)
Mutual labels:  hacktoberfest, docker-image
Mongo Seeding
The ultimate solution for populating your MongoDB database.
Stars: ✭ 375 (+25.42%)
Mutual labels:  hacktoberfest, docker-image
Docker Android Sdk
Stars: ✭ 171 (-42.81%)
Mutual labels:  hacktoberfest, docker-image
Trashemail
A hosted disposable email telegram bot; Extremely privacy friendly; Proudly hosted for community.
Stars: ✭ 408 (+36.45%)
Mutual labels:  hacktoberfest, docker-image
Custom War Packager
Custom Jenkins WAR packager for Jenkins
Stars: ✭ 77 (-74.25%)
Mutual labels:  hacktoberfest, docker-image
Postgresql Postgis Timescaledb
PostgreSQL + PostGIS + TimescaleDB docker image 🐘🌎📈
Stars: ✭ 19 (-93.65%)
Mutual labels:  hacktoberfest, docker-image
Container
HedgeDoc container image resources
Stars: ✭ 149 (-50.17%)
Mutual labels:  hacktoberfest, docker-image
Foundryvtt Docker
An easy-to-deploy Dockerized Foundry Virtual Tabletop server.
Stars: ✭ 123 (-58.86%)
Mutual labels:  hacktoberfest, docker-image
Docker Inbound Agent
Docker image for a Jenkins agent which can connect to Jenkins using TCP or Websocket protocols
Stars: ✭ 342 (+14.38%)
Mutual labels:  hacktoberfest, docker-image
Docker Build With Cache Action
Build and push docker images caching each stage to reduce build time
Stars: ✭ 228 (-23.75%)
Mutual labels:  hacktoberfest, docker-image
Portainer
Making Docker and Kubernetes management easy.
Stars: ✭ 20,434 (+6734.11%)
Mutual labels:  hacktoberfest, docker-image
Apisprout
Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation
Stars: ✭ 519 (+73.58%)
Mutual labels:  hacktoberfest, docker-image
Docker Ansible Playbook
Docker Image of Ansible for executing ansible-playbook command against an externally mounted set of Ansible playbooks
Stars: ✭ 90 (-69.9%)
Mutual labels:  hacktoberfest, docker-image
Tenseal
A library for doing homomorphic encryption operations on tensors
Stars: ✭ 197 (-34.11%)
Mutual labels:  hacktoberfest, docker-image
Yii2 Docker
Official Docker images suitable for Yii 2.0
Stars: ✭ 286 (-4.35%)
Mutual labels:  hacktoberfest, docker-image
Glportal
🎮 Open Source teleportation based first person puzzle-platformer
Stars: ✭ 297 (-0.67%)
Mutual labels:  hacktoberfest
Tridactyl
A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.
Stars: ✭ 3,474 (+1061.87%)
Mutual labels:  hacktoberfest
Docs
Parse Platform docs
Stars: ✭ 296 (-1%)
Mutual labels:  hacktoberfest

Build status

AdoptOpenJDK and Docker

Dockerfiles and build scripts for generating Docker Images based on various AdoptOpenJDK binaries. We support both Hotspot and Eclipse OpenJ9 VMs.

Supported Architectures

  • Hotspot is supported on armv7l, aarch64, ppc64le, s390x and x86_64.
  • Eclipse OpenJ9 is supported on ppc64le, s390x and x86_64.

Supported OS

  • Supported Linux OSes
Alpine centos clefos debian debianslim leap tumbleweed ubi ubi-minimal ubuntu(*)
3.12 7 7 buster buster-slim 15.2 latest 8.2 8.2 20.04

Note: Hotspot is not supported on Ubuntu 20.04 for s390x arch.

  • Supported Windows OSes
    • 1809
    • ltsc2016

Official and Unofficial Images

AdoptOpenJDK Docker Images are available as both Official Images (Maintained by Docker) and Unofficial Images (Maintained by AdoptOpenJDK). Please choose based on your requirements.

  • Official Images are maintained by Docker and updated on every release from AdoptOpenJDK as well as when the underlying OSes are updated. Supported OSes and their versions and type of images are as below.
    • Linux
      • Ubuntu (20.04): Release
    • Windows
      • Windows Server Core (ltsc2016 and 1809): Release
  • Unofficial Images are maintained by AdoptOpenJDK and updated on a nightly basis. Supported OSes and their versions and type of images are as below.
    • Linux
      • Alpine (3.12): Release, Nightly and Slim
      • CentOS (7): Release, Nightly and Slim
      • ClefOS (7): Release, Nightly and Slim
      • Debian (Buster): Release, Nightly and Slim
      • DebianSlim (Buster-slim): Release, Nightly and Slim
      • Leap (15.2): Release and Nightly
      • Tumbleweed (latest): Release and Nightly
      • UBI (8.2): Release, Nightly and Slim
      • UBI-Minimal (8.2): Release and Nightly
      • Ubuntu (20.04): Nightly and Slim

Unofficial Images: Docker Image Build Types and Associated Tags

Legend

  • ${os} = alpine|debian|ubi|ubi-minimal|ubuntu|windows
  • ${slim-os} = alpine|debian|ubi|ubuntu
  • ${jdk-version} Eg. jdk-11.0.3_7, jdk-12.33_openj9-0.13.0
  • ${jre-version} Eg. jre-11.0.3_7, jre-12.33_openj9-0.13.0
  1. There are two kinds of build images
    • Release build images
      • These are release tested versions of the JDKs.
      • Associated tags:
        - latest, ${os},           ${jdk-version},      ${jdk-version}-${os}
        - jre,    ${os}-jre,       ${jre-version},      ${jre-version}-${os}
        - slim,   ${slim-os}-slim, ${jdk-version}-slim, ${jdk-version}-${slim-os}-slim
      
    • Nightly build images
      • These are nightly builds with minimal testing.
      • Associated tags:
        - nightly,      ${os}-nightly,           ${jdk-version}-${os}-nightly
        - jre-nightly,  ${os}-jre-nightly,       ${jre-version}-${os}-nightly
        - nightly-slim, ${slim-os}-nightly-slim, ${jdk-version}-${slim-os}-nightly-slim
      
  2. There are two build types
    • Full build images
      • This consists of the full JDK.
      • Associated tags:
        - latest,      ${os},             ${jdk-version},         ${jdk-version}-${os}
        - jre,         ${os}-jre,         ${jre-version},         ${jre-version}-${os}
        - nightly,     ${os}-nightly,     ${jdk-version}-nightly, ${jdk-version}-${os}-nightly
        - jre-nightly, ${os}-jre-nightly, ${jre-version}-nightly, ${jre-version}-${os}-nightly
      
    • Slim build images
      • These are stripped down JDK builds that remove functionality not typically needed while running in a cloud. See the ./slim-java.sh script to see what is stripped out.
      • Associated tags:
        - slim,         ${slim-os}-slim,         ${jdk-version}-slim,         ${jdk-version}-${slim-os}-slim
        - nightly-slim, ${slim-os}-nightly-slim, ${jdk-version}-nightly-slim, ${jdk-version}-${slim-os}-nightly-slim
      
  3. There are also JDK and JRE only variants
    • JDK build images
      • This consists of the full JDK.
      • Associated tags:
        - latest,       ${os},                   ${jdk-version},              ${jdk-version}-${os}
        - slim,         ${slim-os}-slim,         ${jdk-version}-slim,         ${jdk-version}-${slim-os}-slim
        - nightly,      ${os}-nightly,           ${jdk-version}-nightly,      ${jdk-version}-${os}-nightly
        - nightly-slim, ${slim-os}-nightly-slim, ${jdk-version}-nightly-slim, ${jdk-version}-${slim-os}-nightly-slim
      
    • JRE build images
      • This consists of only JRE.
      • Associated tags:
        - jre,         ${os}-jre,         ${jre-version},         ${jre-version}-${os}
        - jre-nightly, ${os}-jre-nightly, ${jre-version}-nightly, ${jre-version}-${os}-nightly
      

Here is a listing of the image sizes for the various build images and types for JDK Version 8

VMs latest slim nightly nightly-slim alpine alpine-slim alpine-nightly alpine-nightly-slim
OpenJ9 339MB 251MB 344MB 250MB 208MB 120MB 213MB 118MB
Hotspot 324MB 238MB 324MB 238MB 193MB 106MB 193MB 106MB

Notes:

  1. The alpine-slim images are about 60% smaller than the latest images.
  2. The Alpine Linux and the slim images are not yet TCK certified.

Build and push the Images with multi-arch support

# Steps 1-2 needs to be run on all supported arches.
# i.e aarch64, ppc64le, s390x and x86_64.

# 1. Clone this github repo
     $ git clone https://github.com/AdoptOpenJDK/openjdk-docker

# 2. Build images and tag them appropriately
     $ cd openjdk-docker
     $ ./build_all.sh

# Steps 3 needs to be run only on x86_64

# 3. build_all.sh should be run on all supported architectures to build and push images to the
#    docker registry. The images should now be available on hub.docker.com but without multi-arch
#    support. To add multi-arch support, we need to generate the right manifest lists and push them
#    to hub.docker.com. The script generate_manifest_script.sh can be used to
#    generate the right manifest commands. This needs to be run only on x86_64 after docker images
#    for all architecures have been built and made available on hub.docker.com
     $ ./update_manifest_all.sh

# We should now have the proper manifest lists pushed to hub.docker.com to support multi-arch pulls.

Info on other scripts

  • update_all.sh: Script to generate all Dockerfiles.

      $ ./update_multiarch.sh $version
    
    • dockerfile_functions.sh: Dockerfile content is generated from this. Update this script if you want any changes to the generated Dockerfiles.
  • build_all.sh: Script to build all supported unofficial docker images on a particular architecture.

    • build_latest.sh: Helper script that builds a docker image for a specific Java version, VM and package combination.
  • update_manifest_all.sh: Script that generates the multi-arch manifest for all unofficial docker images for supported/released architectures at any given time.

    • generate_manifest_script.sh: Helper script that generates the manifest for a given Java version, VM and Package combination for all supported architectures. If a build is unavailable for a supported architecture (build failed, not yet released etc), a manifest entry for that architecture will not be added.
  • linter.sh: Linting dockerfiles (via hadolint).

     To lint generated dockerfiles run 
     $ ./linter.sh
    

Helper Scripts

  • Run generate_latest_sums.sh to get the shasums for the latest binaries on adoptopenjdk.net
     $ ./generate_latest_sums.sh $version
    
    You should now have two files, hotspot_shasums_latest.sh and openj9_shasums_latest.sh. These will have the shasums for the latest version for each of the supported arches for hotspot and Eclipse OpenJ9 respectively.
  • slim-java.sh: Script that is used to generate the slim docker images. This script strips out various aspects of the JDK that are typically not needed in a server side containerized application. This includes debug info, symbols, classes related to audio, desktop etc
  • dockerhub_doc_config_update.sh: Script that generates the tag documentation for each of the unofficial AdoptOpenJDK pages on hub.docker.com and the config file for raising a PR at the Official AdoptOpenJDK git repo.

Config Files

The config dir consists of configuration files used by the scripts to determine the supported combinations of Version / OS / VM / Package / Build types and Architectures for both Official/Unofficial images as well as the corresponding tags.

Mac OS X

Please note you'll need to upgrade bash shell on Mac OS X if you're to use our Docker images on there.

License

The Dockerfiles and associated scripts found in this project are licensed under the Apache License 2.0..

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].