diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index acc10fb..7dfedb5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,6 +39,7 @@ jobs: ## Ubuntu 26.04 (latest) - context: openjdk-25/ubuntu/26.04 imageTag: latest,25,25-ubuntu,25-ubuntu-26,25-ubuntu-2604,openjdk-25,openjdk-25-ubuntu,openjdk-25-ubuntu-26,openjdk-25-ubuntu-2604 + platforms: linux/arm64,linux/amd64 ## Ubuntu 24.04 - context: openjdk-25/ubuntu/24.04 imageTag: 25-ubuntu-24,25-ubuntu-2404,openjdk-25-ubuntu-24,openjdk-25-ubuntu-2404 @@ -46,6 +47,7 @@ jobs: ## Ubuntu 26.04 - context: openjdk-21/ubuntu/26.04 imageTag: 21,21-ubuntu,21-ubuntu-26,21-ubuntu-2604,openjdk-21,openjdk-21-ubuntu,openjdk-21-ubuntu-26,openjdk-21-ubuntu-2604 + platforms: linux/arm64,linux/amd64 ## Ubuntu 24.04 - context: openjdk-21/ubuntu/24.04 imageTag: 21-ubuntu-24,21-ubuntu-2404,openjdk-21-ubuntu-24,openjdk-21-ubuntu-2404 @@ -84,6 +86,7 @@ jobs: dockerImage: "exoplatform/jdk" dockerFileContext: ${{ matrix.context }} dockerImageTag: ${{ matrix.imageTag }} + platforms: ${{ matrix.platforms }} attestImage: true DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} \ No newline at end of file diff --git a/README.md b/README.md index 69ba0bc..afeddda 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ | **openjdk-8 + Ubuntu 22.04** | `8`, `8-ubuntu`, `8-ubuntu-22`, `8-ubuntu-2204`, `openjdk-8`, `openjdk-8-ubuntu`, `openjdk-8-ubuntu-22`, `openjdk-8-ubuntu-2204` | `openjdk-8/ubuntu/22.04/Dockerfile` | | **openjdk-8 + Ubuntu 20.04** | `8-ubuntu-20`, `8-ubuntu-2004`, `openjdk-8-ubuntu-20`, `openjdk-8-ubuntu-2004` | `openjdk-8/ubuntu/20.04/Dockerfile` | +> **Multi-Architecture Support**: Starting from Ubuntu 26.04 (Resolute Raccoon), images are built for both `linux/amd64` and `linux/arm64` architectures. This allows running these JDK images on Apple Silicon (M1/M2/M3), AWS Graviton, and other ARM64-based systems. Images based on Ubuntu 24.04 and earlier are amd64 only. + - [Quick reference](#quick-reference) - [How to use this image](#how-to-use-this-image) diff --git a/openjdk-21/ubuntu/26.04/Dockerfile b/openjdk-21/ubuntu/26.04/Dockerfile index 43bfd5a..c39da9f 100644 --- a/openjdk-21/ubuntu/26.04/Dockerfile +++ b/openjdk-21/ubuntu/26.04/Dockerfile @@ -22,6 +22,10 @@ RUN apt-get -qq update && \ RUN apt-get -qq -y autoremove && \ apt-get -qq -y clean && \ rm -rf /var/lib/apt/lists/* -ENV JAVA_HOME /usr/lib/jvm/zulu${JDK_MAJOR_VERSION}-ca-amd64 + +# Create a symlink that points to the actual JDK location +RUN ln -s /usr/lib/jvm/zulu${JDK_MAJOR_VERSION}-ca-$(dpkg --print-architecture) /usr/lib/jvm/zulu${JDK_MAJOR_VERSION} + +ENV JAVA_HOME /usr/lib/jvm/zulu${JDK_MAJOR_VERSION} ENTRYPOINT ["/usr/local/bin/tini", "--", "/usr/bin/java"] diff --git a/openjdk-25/ubuntu/26.04/Dockerfile b/openjdk-25/ubuntu/26.04/Dockerfile index c1c425b..05f7fc8 100644 --- a/openjdk-25/ubuntu/26.04/Dockerfile +++ b/openjdk-25/ubuntu/26.04/Dockerfile @@ -22,6 +22,10 @@ RUN apt-get -qq update && \ RUN apt-get -qq -y autoremove && \ apt-get -qq -y clean && \ rm -rf /var/lib/apt/lists/* -ENV JAVA_HOME /usr/lib/jvm/zulu${JDK_MAJOR_VERSION}-ca-amd64 + +# Create a symlink that points to the actual JDK location +RUN ln -s /usr/lib/jvm/zulu${JDK_MAJOR_VERSION}-ca-$(dpkg --print-architecture) /usr/lib/jvm/zulu${JDK_MAJOR_VERSION} + +ENV JAVA_HOME /usr/lib/jvm/zulu${JDK_MAJOR_VERSION} ENTRYPOINT ["/usr/local/bin/tini", "--", "/usr/bin/java"]