Skip to content

Commit aeb306b

Browse files
authored
Merge pull request #402 from gradle/cobexer/ubuntu-resolute-base-images
Add Ubuntu 26.04 LTS (resolute) base image variants
2 parents 76695c8 + 39016bd commit aeb306b

14 files changed

Lines changed: 782 additions & 14 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,36 @@ jobs:
2828
directory:
2929
- jdk17-jammy
3030
- jdk17-noble
31+
- jdk17-resolute
3132
- jdk17-alpine
3233
- jdk17-corretto
3334
- jdk17-ubi10
3435
- jdk17-ubi9
3536
- jdk17-jammy-graal
3637
- jdk17-noble-graal
38+
- jdk17-resolute-graal
3739
- jdk21-jammy
3840
- jdk21-noble
41+
- jdk21-resolute
3942
- jdk21-alpine
4043
- jdk21-corretto
4144
- jdk21-ubi10
4245
- jdk21-ubi9
4346
- jdk21-jammy-graal
4447
- jdk21-noble-graal
48+
- jdk21-resolute-graal
4549
- jdk25-noble
50+
- jdk25-resolute
4651
- jdk25-alpine
4752
- jdk25-corretto
4853
- jdk25-ubi10
4954
- jdk25-noble-graal
55+
- jdk25-resolute-graal
56+
- jdk26-noble
57+
- jdk26-resolute
58+
- jdk26-alpine
59+
- jdk26-corretto
60+
- jdk26-ubi10
5061
- jdk-lts-and-current
5162
- jdk-lts-and-current-alpine
5263
- jdk-lts-and-current-corretto

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ Maintained by the [Gradle team](https://github.com/gradle/docker-gradle) as an [
1313

1414
- **JDK 8**[`jdk8`, `jdk8-jammy`](https://github.com/gradle/docker-gradle/blob/8/jdk8-jammy/Dockerfile), [`jdk8-corretto`](https://github.com/gradle/docker-gradle/blob/8/jdk8-corretto/Dockerfile), [`jdk8-ubi9`](https://github.com/gradle/docker-gradle/tree/8/jdk8-ubi9/Dockerfile)
1515
- **JDK 11**[`jdk11`, `jdk11-noble`](https://github.com/gradle/docker-gradle/tree/8/jdk11-noble/Dockerfile), [`jdk11-jammy`](https://github.com/gradle/docker-gradle/tree/8/jdk11-jammy/Dockerfile), [`jdk11-alpine`](https://github.com/gradle/docker-gradle/tree/8/jdk11-alpine/Dockerfile), [`jdk11-corretto`](https://github.com/gradle/docker-gradle/tree/8/jdk11-corretto/Dockerfile), [`jdk11-ubi9`](https://github.com/gradle/docker-gradle/tree/8/jdk11-ubi9/Dockerfile)
16-
- **JDK 17**[`jdk17`, `jdk17-noble`](jdk17-noble/Dockerfile), [`jdk17-jammy`](jdk17-jammy/Dockerfile), [`jdk17-alpine`](jdk17-alpine/Dockerfile), [`jdk17-corretto`](jdk17-corretto/Dockerfile), [`jdk17-ubi10`](jdk17-ubi10/Dockerfile), [`jdk17-ubi9`](jdk17-ubi9/Dockerfile), [`jdk17-noble-graal`](jdk17-noble-graal/Dockerfile)
17-
- **JDK 21**[`jdk21`, `jdk21-noble`](jdk21-noble/Dockerfile), [`jdk21-jammy`](jdk21-jammy/Dockerfile), [`jdk21-alpine`](jdk21-alpine/Dockerfile), [`jdk21-corretto`](jdk21-corretto/Dockerfile), [`jdk21-ubi10`](jdk21-ubi10/Dockerfile), [`jdk21-ubi9`](jdk21-ubi9/Dockerfile), [`jdk21-graal`](jdk21-noble-graal/Dockerfile)
18-
- **JDK 25 (LTS)**[`jdk25`, `jdk25-noble`](jdk25-noble/Dockerfile), [`jdk25-alpine`](jdk25-alpine/Dockerfile), [`jdk25-corretto`](jdk25-corretto/Dockerfile), [`jdk25-ubi10`](jdk25-ubi10/Dockerfile), [`jdk25-graal`, `graal`](jdk25-noble-graal/Dockerfile)
19-
- **JDK 26**[`jdk26`, `jdk26-noble`, `latest`](jdk26-noble/Dockerfile), [`jdk26-alpine`, `alpine`](jdk26-alpine/Dockerfile), [`jdk26-corretto`, `corretto`](jdk26-corretto/Dockerfile), [`jdk26-ubi10`, `ubi`](jdk26-ubi10/Dockerfile)
16+
- **JDK 17**[`jdk17`, `jdk17-resolute`](jdk17-resolute/Dockerfile), [`jdk17-noble`](jdk17-noble/Dockerfile), [`jdk17-jammy`](jdk17-jammy/Dockerfile), [`jdk17-alpine`](jdk17-alpine/Dockerfile), [`jdk17-corretto`](jdk17-corretto/Dockerfile), [`jdk17-ubi10`](jdk17-ubi10/Dockerfile), [`jdk17-ubi9`](jdk17-ubi9/Dockerfile), [`jdk17-resolute-graal`](jdk17-resolute-graal/Dockerfile), [`jdk17-noble-graal`](jdk17-noble-graal/Dockerfile)
17+
- **JDK 21**[`jdk21`, `jdk21-resolute`](jdk21-resolute/Dockerfile), [`jdk21-noble`](jdk21-noble/Dockerfile), [`jdk21-jammy`](jdk21-jammy/Dockerfile), [`jdk21-alpine`](jdk21-alpine/Dockerfile), [`jdk21-corretto`](jdk21-corretto/Dockerfile), [`jdk21-ubi10`](jdk21-ubi10/Dockerfile), [`jdk21-ubi9`](jdk21-ubi9/Dockerfile), [`jdk21-graal`](jdk21-resolute-graal/Dockerfile)
18+
- **JDK 25 (LTS)**[`jdk25`, `jdk25-resolute`](jdk25-resolute/Dockerfile), [`jdk25-noble`](jdk25-noble/Dockerfile), [`jdk25-alpine`](jdk25-alpine/Dockerfile), [`jdk25-corretto`](jdk25-corretto/Dockerfile), [`jdk25-ubi10`](jdk25-ubi10/Dockerfile), [`jdk25-graal`, `graal`](jdk25-resolute-graal/Dockerfile)
19+
- **JDK 26**[`jdk26`, `jdk26-resolute`, `latest`](jdk26-resolute/Dockerfile), [`jdk26-noble`](jdk26-noble/Dockerfile), [`jdk26-alpine`, `alpine`](jdk26-alpine/Dockerfile), [`jdk26-corretto`, `corretto`](jdk26-corretto/Dockerfile), [`jdk26-ubi10`, `ubi`](jdk26-ubi10/Dockerfile)
2020

2121
See all tags on [Docker Hub](https://hub.docker.com/_/gradle/tags).
2222

generate-stackbrew-library.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ def sort_key(d):
6565
elif "ubi" in d: variant_score = 3
6666
elif "graal" in d: variant_score = 4
6767

68-
ubuntu_score = -2
68+
ubuntu_score = -3
69+
if "noble" in d: ubuntu_score = -2
6970
if "jammy" in d: ubuntu_score = -1
7071

7172
return (is_lts, jdk_sort_val, variant_score, ubuntu_score, d)

jdk-lts-and-current-graal/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ubuntu:noble
1+
FROM ubuntu:resolute
22

33
CMD ["gradle"]
44

jdk-lts-and-current/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FROM eclipse-temurin:25-jdk-noble
1+
FROM eclipse-temurin:25-jdk-resolute
22

3-
COPY --from=eclipse-temurin:26-jdk-noble /opt/java/openjdk /opt/java/openjdk26
3+
COPY --from=eclipse-temurin:26-jdk-resolute /opt/java/openjdk /opt/java/openjdk26
44
RUN set -o errexit -o nounset \
55
&& ln --symbolic /opt/java/openjdk /opt/java/openjdk25
66
ENV JAVA_LTS_HOME=/opt/java/openjdk25

jdk17-resolute-graal/Dockerfile

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
FROM ubuntu:resolute
2+
3+
CMD ["gradle"]
4+
5+
ENV GRADLE_HOME=/opt/gradle
6+
7+
RUN set -o errexit -o nounset \
8+
&& echo "Renaming ubuntu user and group to gradle" \
9+
&& groupmod --new-name gradle ubuntu \
10+
&& mkdir /home/gradle \
11+
&& usermod --login gradle --home /home/gradle --groups gradle ubuntu \
12+
&& chown gradle /home/gradle \
13+
&& mkdir /home/gradle/.gradle \
14+
&& chown --recursive gradle:gradle /home/gradle \
15+
&& chmod --recursive o+rwx /home/gradle \
16+
\
17+
&& echo "Symlinking root Gradle cache to gradle Gradle cache" \
18+
&& ln --symbolic /home/gradle/.gradle /root/.gradle
19+
20+
VOLUME /home/gradle/.gradle
21+
22+
WORKDIR /home/gradle
23+
24+
RUN set -o errexit -o nounset \
25+
&& export DEBIAN_FRONTEND=noninteractive \
26+
&& apt-get update \
27+
&& apt-get install --yes --no-install-recommends \
28+
# common utilities
29+
make \
30+
curl \
31+
wget \
32+
tar \
33+
\
34+
# Gradle & Dockerfile dependencies
35+
binutils \
36+
ca-certificates \
37+
fontconfig \
38+
locales \
39+
p11-kit \
40+
tzdata \
41+
unzip \
42+
\
43+
# build dependencies
44+
gcc \
45+
libc-dev \
46+
libz-dev \
47+
zlib1g-dev \
48+
\
49+
# VCSes
50+
brz \
51+
git \
52+
git-lfs \
53+
mercurial \
54+
openssh-client \
55+
subversion \
56+
&& rm --recursive --force /var/lib/apt/lists/* \
57+
\
58+
&& echo "Testing common utilities" \
59+
&& which awk \
60+
&& which curl \
61+
&& which cut \
62+
&& which grep \
63+
&& which gunzip \
64+
&& which sha256sum \
65+
&& which sed \
66+
&& which tar \
67+
&& which tr \
68+
&& which unzip \
69+
&& which wget \
70+
\
71+
&& echo "Testing VCSes" \
72+
&& which brz \
73+
&& which git \
74+
&& which git-lfs \
75+
&& which hg \
76+
&& which svn
77+
78+
ENV JAVA_HOME=/opt/java/graalvm
79+
ENV JAVA_VERSION=17.0.9
80+
RUN set -o errexit -o nounset \
81+
&& mkdir /opt/java \
82+
\
83+
&& echo "Downloading GraalVM" \
84+
&& GRAALVM_AMD64_DOWNLOAD_SHA256=e47ba7229cef02393e19d5b8f46f7f1cab4829dd17bfe84d5431fc8ff0e22a96 \
85+
&& GRAALVM_AARCH64_DOWNLOAD_SHA256=c3281b21f5220c2f76cf6fa0d646bc42e2d729af2c022bb06e557a613ba16102 \
86+
&& ARCHITECTURE=$(dpkg --print-architecture) \
87+
&& if [ "${ARCHITECTURE}" = "amd64" ]; then GRAALVM_ARCHITECTURE=linux-x64; fi \
88+
&& if [ "${ARCHITECTURE}" = "arm64" ]; then GRAALVM_ARCHITECTURE=linux-aarch64; fi \
89+
&& GRAALVM_PKG=https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-${JAVA_VERSION}/graalvm-community-jdk-${JAVA_VERSION}_${GRAALVM_ARCHITECTURE}_bin.tar.gz \
90+
&& wget --no-verbose --output-document=graalvm.tar.gz "${GRAALVM_PKG}" \
91+
\
92+
&& echo "Checking GraalVM download hash" \
93+
&& if [ "${ARCHITECTURE}" = "amd64" ]; then GRAALVM_DOWNLOAD_SHA256="${GRAALVM_AMD64_DOWNLOAD_SHA256}"; fi \
94+
&& if [ "${ARCHITECTURE}" = "arm64" ]; then GRAALVM_DOWNLOAD_SHA256="${GRAALVM_AARCH64_DOWNLOAD_SHA256}"; fi \
95+
&& echo "${GRAALVM_DOWNLOAD_SHA256} *graalvm.tar.gz" | sha256sum --check - \
96+
\
97+
&& echo "Installing GraalVM" \
98+
&& tar --extract --gunzip --file graalvm.tar.gz \
99+
&& rm graalvm.tar.gz \
100+
&& mv graalvm-* "${JAVA_HOME}" \
101+
&& for bin in "$JAVA_HOME/bin/"*; do \
102+
base="$(basename "$bin")"; \
103+
[ ! -e "/usr/bin/$base" ]; \
104+
update-alternatives --install "/usr/bin/${base}" "${base}" "${bin}" 1; \
105+
done \
106+
\
107+
&& echo "Testing GraalVM installation" \
108+
&& java --version \
109+
&& javac --version \
110+
&& gu --version \
111+
&& native-image --version
112+
113+
ENV GRADLE_VERSION=9.5.1
114+
ARG GRADLE_DOWNLOAD_SHA256=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f
115+
RUN set -o errexit -o nounset \
116+
&& echo "Downloading Gradle" \
117+
&& wget --no-verbose --output-document=gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \
118+
\
119+
&& echo "Checking Gradle download hash" \
120+
&& echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \
121+
\
122+
&& echo "Installing Gradle" \
123+
&& unzip gradle.zip \
124+
&& rm gradle.zip \
125+
&& mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/" \
126+
&& ln --symbolic "${GRADLE_HOME}/bin/gradle" /usr/bin/gradle
127+
128+
USER gradle
129+
130+
RUN set -o errexit -o nounset \
131+
&& echo "Testing Gradle installation" \
132+
&& gradle --stacktrace --debug --version
133+
134+
USER root

jdk17-resolute/Dockerfile

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
FROM eclipse-temurin:17-jdk-resolute
2+
3+
CMD ["gradle"]
4+
5+
ENV GRADLE_HOME=/opt/gradle
6+
7+
RUN set -o errexit -o nounset \
8+
&& echo "Renaming ubuntu user and group to gradle" \
9+
&& groupmod --new-name gradle ubuntu \
10+
&& mkdir /home/gradle \
11+
&& usermod --login gradle --home /home/gradle --groups gradle ubuntu \
12+
&& chown gradle /home/gradle \
13+
&& mkdir /home/gradle/.gradle \
14+
&& chown --recursive gradle:gradle /home/gradle \
15+
&& chmod --recursive o+rwx /home/gradle \
16+
\
17+
&& echo "Symlinking root Gradle cache to gradle Gradle cache" \
18+
&& ln --symbolic /home/gradle/.gradle /root/.gradle
19+
20+
VOLUME /home/gradle/.gradle
21+
22+
WORKDIR /home/gradle
23+
24+
RUN set -o errexit -o nounset \
25+
&& apt-get update \
26+
&& apt-get install --yes --no-install-recommends \
27+
# common utilities
28+
make \
29+
curl \
30+
wget \
31+
tar \
32+
\
33+
# Dockerfile dependencies
34+
unzip \
35+
\
36+
# VCSes
37+
brz \
38+
git \
39+
git-lfs \
40+
mercurial \
41+
openssh-client \
42+
subversion \
43+
&& rm --recursive --force /var/lib/apt/lists/* \
44+
\
45+
&& echo "Testing common utilities" \
46+
&& which awk \
47+
&& which curl \
48+
&& which cut \
49+
&& which grep \
50+
&& which gunzip \
51+
&& which sha256sum \
52+
&& which sed \
53+
&& which tar \
54+
&& which tr \
55+
&& which unzip \
56+
&& which wget \
57+
\
58+
&& echo "Testing VCSes" \
59+
&& which brz \
60+
&& which git \
61+
&& which git-lfs \
62+
&& which hg \
63+
&& which svn
64+
65+
ENV GRADLE_VERSION=9.5.1
66+
ARG GRADLE_DOWNLOAD_SHA256=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f
67+
RUN set -o errexit -o nounset \
68+
&& echo "Downloading Gradle" \
69+
&& wget --no-verbose --output-document=gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \
70+
\
71+
&& echo "Checking Gradle download hash" \
72+
&& echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \
73+
\
74+
&& echo "Installing Gradle" \
75+
&& unzip gradle.zip \
76+
&& rm gradle.zip \
77+
&& mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/" \
78+
&& ln --symbolic "${GRADLE_HOME}/bin/gradle" /usr/bin/gradle
79+
80+
USER gradle
81+
82+
RUN set -o errexit -o nounset \
83+
&& echo "Testing Gradle installation" \
84+
&& gradle --stacktrace --debug --version
85+
86+
USER root

0 commit comments

Comments
 (0)