epicsoft/openjdk

By epicsoft

Updated 6 days ago

Java OpenJDK-JDK and -JRE Docker images based on official images

Image
Languages & Frameworks
Developer Tools
0

6.8K

OpenJDK

This Docker image is managed and kept up to date by epicsoft LLC.

Java OpenJDK-JDK and -JRE Docker images based on official images.

OpenJDK-JDK

OpenJDK-JDK based on official image Docker in Docker (DinD) and indirectly on Alpine Linux.
This image is intended for building and can be used in a pipeline.

OpenJDK-JRE

OpenJDK-JRE based on official images Alpine Linux.
This image is for the runtime environment.

Versions

jdkjdk21jdk21.0.6jdk21-latestjdk-latest
based on docker:27.5.1-dind indirectly on Alpine 3.21.3 with Java JDK 21.0.6 - build weekly

jrejre21jre21.0.6jre21-latestjre-latestlatest
based on alpine:3.21.3 image with Java JRE 21.0.6 - build weekly

jdk17jdk17.0.14jdk17-latest
based on docker:27.5.1-dind indirectly on Alpine 3.21.3 with Java JDK 17.0.14 - build weekly

jre17jre17.0.14jre17-latest
based on alpine:3.21.3 image with Java JRE 17.0.14 - build weekly

jdk11jdk11.0.26jdk11-latest
based on docker:27.5.1-dind indirectly on Alpine 3.21.3 with Java JDK 11.0.26 - build weekly

jre11jre11.0.26jre11-latest
based on alpine:3.21.3 image with Java JRE 11.0.26 - build weekly

For older versions see subdirectories

Additional Alpine packages

Alpine packages are installed in the current image in the latest version - https://pkgs.alpinelinux.org/packages

  • ca-certificates (JDK & JRE)
  • ttf-dejavu (JDK & JRE)
  • jq (only JDK)

Examples

Example usage for GitLab CI/CD

Build a Java Gradle project in GitLab CI/CD pipeline

.gitlab-ci.yml

stages:
  - build

variables:
  VERSION: "1.0.0" 

exampleProjectBuild:
  stage: build
  image: epicsoft/openjdk:jdk-latest
  services:
    - docker:dind
  variables:
    DOCKER_IMAGE: $CI_REGISTRY:$VERSION
    JAVA_JAR_PATH: build/libs
  before_script:
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
  after_script:
    - docker logout $CI_REGISTRY
  script:
    - ./gradlew build --warning-mode all
    - docker build -t $DOCKER_IMAGE . --build-arg JAR_FILE=$JAVA_JAR_PATH/exampleProject-${VERSION}.jar --build-arg VERSION=$VERSION --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
    - docker push $DOCKER_IMAGE
Example usage for Dockerfile
FROM epicsoft/openjdk:jre-latest

ARG VERSION="development"
ARG BUILD_DATE="development"
LABEL org.label-schema.name="exampleProject" \
      org.label-schema.description="Example project" \
      org.label-schema.version="$VERSION" \
      org.label-schema.schema-version="1.0" \
      org.label-schema.build-date="$BUILD_DATE"

ENV JAVA_SERVER="-server" \
    JAVA_DOCKER="-XX:+UseContainerSupport -XX:MaxRAMPercentage=80" \
    JAVA_SECURITY="-Djava.security.egd=file:/dev/./urandom" \
    JAVA_ENCODING="-Dfile.encoding=UTF-8" \
    JAVA_TIMEZONE="-Duser.timezone=GMT" \
    JAVA_ERROR="-XX:+ExitOnOutOfMemoryError" \
    JAVA_OPTS=""

ARG JAR_FILE
COPY $JAR_FILE /app.jar

EXPOSE 8080

ENTRYPOINT [ "sh", "-c", "java $JAVA_SERVER $JAVA_DOCKER $JAVA_SECURITY $JAVA_ENCODING $JAVA_TIMEZONE $JAVA_ERROR $JAVA_OPTS -jar /app.jar" ]

License

MIT License see LICENSE

Please note that the MIT license only applies to the files created by epicsoft LLC. Other software may be licensed under other licenses.

Docker Pull Command

docker pull epicsoft/openjdk