@@ -4,7 +4,7 @@ ARG LATEST_VERSION
44FROM eclipse-temurin:${LATEST_VERSION}-jdk-noble AS temurin-latest
55
66# Intermediate image used to prune cruft from JDKs and squash them all.
7- FROM cimg/base:current-22 .04 AS all-jdk
7+ FROM ubuntu:24 .04 AS all-jdk
88ARG LATEST_VERSION
99
1010COPY --from=eclipse-temurin:8-jdk-jammy /opt/java/openjdk /usr/lib/jvm/8
@@ -26,28 +26,34 @@ COPY --from=ibm-semeru-runtimes:open-17-jdk-jammy /opt/java/openjdk /usr/lib/jvm
2626COPY --from=ghcr.io/graalvm/native-image-community:17-ol9 /usr/lib64/graalvm/graalvm-community-java17 /usr/lib/jvm/graalvm17
2727COPY --from=ghcr.io/graalvm/native-image-community:21-ol9 /usr/lib64/graalvm/graalvm-community-java21 /usr/lib/jvm/graalvm21
2828
29- RUN sudo apt-get -y update && sudo apt-get -y install curl
29+ RUN apt-get update && \
30+ apt-get install -y curl tar apt-transport-https ca-certificates gnupg wget && \
31+ apt-get clean && \
32+ rm -rf /var/lib/apt/lists/*
33+
3034# See: https://gist.github.com/wavezhang/ba8425f24a968ec9b2a8619d7c2d86a6
3135RUN <<-EOT
3236 set -eux
33- sudo mkdir -p /usr/lib/jvm/oracle8
34- curl -L --fail "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=246284_165374ff4ea84ef0bbd821706e29b123" | sudo tar -xvzf - -C /usr/lib/jvm/oracle8 --strip-components 1
37+ mkdir -p /usr/lib/jvm/oracle8
38+ curl -L --fail "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=246284_165374ff4ea84ef0bbd821706e29b123" | tar -xvzf - -C /usr/lib/jvm/oracle8 --strip-components 1
3539EOT
3640
3741# Install Ubuntu's OpenJDK 17 and fix broken symlinks:
3842# some files in /usr/lib/jvm/ubuntu17 are symlinks to /etc/java-17-openjdk/, so we just copy all symlinks targets.
3943RUN <<-EOT
4044 set -eux
41- sudo apt-get install openjdk-17-jdk
42- sudo mv /usr/lib/jvm/java-17-openjdk-amd64 /usr/lib/jvm/ubuntu17
43- sudo cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/conf/
44- sudo cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/lib/
45- sudo cp -f --remove-destination /etc/java-17-openjdk/jvm-amd64.cfg /usr/lib/jvm/ubuntu17/lib/
45+ apt-get update
46+ apt-get install -y openjdk-17-jdk
47+ mv /usr/lib/jvm/java-17-openjdk-amd64 /usr/lib/jvm/ubuntu17
48+ mkdir -p /usr/lib/jvm/ubuntu17/conf/ /usr/lib/jvm/ubuntu17/lib/
49+ cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/conf/
50+ cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/lib/
51+ cp -f --remove-destination /etc/java-17-openjdk/jvm-amd64.cfg /usr/lib/jvm/ubuntu17/lib/
4652EOT
4753
4854# Remove cruft from JDKs that is not used in the build process.
4955RUN <<-EOT
50- sudo rm -rf \
56+ rm -rf \
5157 /usr/lib/jvm/*/man \
5258 /usr/lib/jvm/*/lib/src.zip \
5359 /usr/lib/jvm/*/demo \
@@ -65,26 +71,31 @@ COPY --from=all-jdk /usr/lib/jvm/21 /usr/lib/jvm/21
6571COPY --from=all-jdk /usr/lib/jvm/${LATEST_VERSION} /usr/lib/jvm/${LATEST_VERSION}
6672
6773# Base image with minimum requirements to build the project.
68- # Based on CircleCI Base Image with Ubuntu 22.04.3 LTS, present in most runners .
69- FROM cimg/base:current-22 .04 AS base
74+ # Based on the latest Ubuntu LTS image .
75+ FROM ubuntu:24 .04 AS base
7076ARG LATEST_VERSION
7177ENV LATEST_VERSION=${LATEST_VERSION}
7278
7379# https://docs.github.com/en/packages/learn-github-packages/connecting-a-repository-to-a-package
7480LABEL org.opencontainers.image.source=https://github.com/DataDog/dd-trace-java-docker-build
7581
76- # Replace Docker Compose and yq versions by latest and remove docker-switch from CircleCI Base Image for security purposes.
82+ RUN apt-get update && \
83+ apt-get install -y curl apt-transport-https ca-certificates gnupg \
84+ socat less debian-goodies autossh ca-certificates-java python3-pip && \
85+ apt-get clean && \
86+ rm -rf /var/lib/apt/lists/* && \
87+ mkdir -p /usr/local/lib/docker/cli-plugins /usr/local/bin
88+
89+ # Install Docker Compose plugin and yq YAML processor
7790RUN <<-EOT
7891 set -eu
7992 dockerPluginDir=/usr/local/lib/docker/cli-plugins
80- sudo curl -sSL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o $dockerPluginDir/docker-compose
81- sudo chmod +x $dockerPluginDir/docker-compose
82- sudo sudo update-alternatives --remove docker-compose /usr/local/bin/compose-switch
83- sudo rm -f /usr/local/bin/compose-switch
84- sudo rm /usr/local/bin/{install-man-page.sh,yq*}
85- curl -sSL "https://github.com/mikefarah/yq/releases/latest/download/yq_linux_$(dpkg --print-architecture).tar.gz" | sudo tar -xz -C /usr/local/bin --wildcards --no-anchored 'yq_linux_*'
86- sudo mv /usr/local/bin/yq{_linux_*,}
87- sudo chown root:root /usr/local/bin/yq
93+ curl -sSL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o $dockerPluginDir/docker-compose
94+ chmod +x $dockerPluginDir/docker-compose
95+ curl -sSL "https://github.com/mikefarah/yq/releases/latest/download/yq_linux_$(dpkg --print-architecture).tar.gz" | tar -xz -C /usr/local/bin --wildcards --no-anchored 'yq_linux_*'
96+ YQ_PATH=$(find /usr/local/bin -name 'yq_linux_*' )
97+ mv "$YQ_PATH" /usr/local/bin/yq
98+ chown root:root /usr/local/bin/yq
8899EOT
89100
90101COPY --from=default-jdk /usr/lib/jvm /usr/lib/jvm
@@ -97,20 +108,14 @@ COPY autoforward.py /usr/local/bin/autoforward
97108# - datadog-ci: Datadog CI tool
98109RUN <<-EOT
99110 set -eux
100- sudo apt-get update
101- sudo apt-get install --no-install-recommends apt-transport-https socat
102- sudo apt-get install --no-install-recommends vim less debian-goodies
103- sudo apt-get install --no-install-recommends autossh
104- sudo apt-get install ca-certificates-java
105- sudo apt install python3-pip
106- sudo apt-get -y clean
107- sudo rm -rf /var/lib/apt/lists/*
108- pip3 install awscli
109- pip3 install requests requests-unixsocket2
111+ apt-get update
112+ pip3 install --break-system-packages awscli requests requests-unixsocket2
110113 pip3 cache purge
111- sudo chmod +x /usr/local/bin/autoforward
112- sudo curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci"
113- sudo chmod +x /usr/local/bin/datadog-ci
114+ chmod +x /usr/local/bin/autoforward
115+ curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci"
116+ chmod +x /usr/local/bin/datadog-ci
117+ apt-get clean
118+ rm -rf /var/lib/apt/lists/*
114119EOT
115120
116121# IBM specific env variables
0 commit comments