11# syntax=docker/dockerfile:1.6
22
33# Intermediate image used to prune cruft from JDKs and squash them all.
4- FROM cimg/base:current-22 .04 AS all-jdk
4+ FROM ubuntu:24 .04 AS all-jdk
55
66COPY --from=eclipse-temurin:8-jdk-jammy /opt/java/openjdk /usr/lib/jvm/8
77COPY --from=eclipse-temurin:11-jdk-jammy /opt/java/openjdk /usr/lib/jvm/11
@@ -21,28 +21,34 @@ COPY --from=ibm-semeru-runtimes:open-17-jdk-jammy /opt/java/openjdk /usr/lib/jvm
2121COPY --from=ghcr.io/graalvm/native-image-community:17-ol9 /usr/lib64/graalvm/graalvm-community-java17 /usr/lib/jvm/graalvm17
2222COPY --from=ghcr.io/graalvm/native-image-community:21-ol9 /usr/lib64/graalvm/graalvm-community-java21 /usr/lib/jvm/graalvm21
2323
24- RUN sudo apt-get -y update && sudo apt-get -y install curl
24+ RUN apt-get update && \
25+ apt-get install -y curl tar apt-transport-https ca-certificates gnupg wget && \
26+ apt-get clean && \
27+ rm -rf /var/lib/apt/lists/*
28+
2529# See: https://gist.github.com/wavezhang/ba8425f24a968ec9b2a8619d7c2d86a6
2630RUN <<-EOT
2731 set -eux
28- sudo mkdir -p /usr/lib/jvm/oracle8
29- curl -L --fail "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=246284_165374ff4ea84ef0bbd821706e29b123" | sudo tar -xvzf - -C /usr/lib/jvm/oracle8 --strip-components 1
32+ mkdir -p /usr/lib/jvm/oracle8
33+ curl -L --fail "https://javadl.oracle.com/webapps/download/AutoDL?BundleId=246284_165374ff4ea84ef0bbd821706e29b123" | tar -xvzf - -C /usr/lib/jvm/oracle8 --strip-components 1
3034EOT
3135
3236# Install Ubuntu's OpenJDK 17 and fix broken symlinks:
3337# some files in /usr/lib/jvm/ubuntu17 are symlinks to /etc/java-17-openjdk/, so we just copy all symlinks targets.
3438RUN <<-EOT
3539 set -eux
36- sudo apt-get install openjdk-17-jdk
37- sudo mv /usr/lib/jvm/java-17-openjdk-amd64 /usr/lib/jvm/ubuntu17
38- sudo cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/conf/
39- sudo cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/lib/
40- sudo cp -f --remove-destination /etc/java-17-openjdk/jvm-amd64.cfg /usr/lib/jvm/ubuntu17/lib/
40+ apt-get update
41+ apt-get install -y openjdk-17-jdk
42+ mv /usr/lib/jvm/java-17-openjdk-amd64 /usr/lib/jvm/ubuntu17
43+ mkdir -p /usr/lib/jvm/ubuntu17/conf/ /usr/lib/jvm/ubuntu17/lib/
44+ cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/conf/
45+ cp -rf --remove-destination /etc/java-17-openjdk/* /usr/lib/jvm/ubuntu17/lib/
46+ cp -f --remove-destination /etc/java-17-openjdk/jvm-amd64.cfg /usr/lib/jvm/ubuntu17/lib/
4147EOT
4248
4349# Remove cruft from JDKs that is not used in the build process.
4450RUN <<-EOT
45- sudo rm -rf \
51+ rm -rf \
4652 /usr/lib/jvm/*/man \
4753 /usr/lib/jvm/*/lib/src.zip \
4854 /usr/lib/jvm/*/demo \
@@ -59,23 +65,28 @@ COPY --from=all-jdk /usr/lib/jvm/21 /usr/lib/jvm/21
5965
6066# Base image with minimunm requirenents to build the project.
6167# Based on CircleCI Base Image with Ubuntu 22.04.3 LTS, present in most runners.
62- FROM cimg/base:current-22 .04 AS base
68+ FROM ubuntu:24 .04 AS base
6369
6470# https://docs.github.com/en/packages/learn-github-packages/connecting-a-repository-to-a-package
6571LABEL org.opencontainers.image.source=https://github.com/DataDog/dd-trace-java-docker-build
6672
67- # Replace Docker Compose and yq versions by latest and remove docker-switch from CircleCI Base Image for security purposes
73+ RUN apt-get update && \
74+ apt-get install -y curl apt-transport-https ca-certificates gnupg \
75+ socat less debian-goodies autossh ca-certificates-java python3-pip && \
76+ apt-get clean && \
77+ rm -rf /var/lib/apt/lists/* && \
78+ mkdir -p /usr/local/lib/docker/cli-plugins /usr/local/bin
79+
80+ # Install Docker Compose plugin and yq YAML processor
6881RUN <<-EOT
6982 set -eu
7083 dockerPluginDir=/usr/local/lib/docker/cli-plugins
71- sudo curl -sSL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o $dockerPluginDir/docker-compose
72- sudo chmod +x $dockerPluginDir/docker-compose
73- sudo sudo update-alternatives --remove docker-compose /usr/local/bin/compose-switch
74- sudo rm -f /usr/local/bin/compose-switch
75- sudo rm /usr/local/bin/{install-man-page.sh,yq*}
76- 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_*'
77- sudo mv /usr/local/bin/yq{_linux_*,}
78- sudo chown root:root /usr/local/bin/yq
84+ curl -sSL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o $dockerPluginDir/docker-compose
85+ chmod +x $dockerPluginDir/docker-compose
86+ 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_*'
87+ YQ_PATH=$(find /usr/local/bin -name 'yq_linux_*' )
88+ mv "$YQ_PATH" /usr/local/bin/yq
89+ chown root:root /usr/local/bin/yq
7990EOT
8091
8192COPY --from=default-jdk /usr/lib/jvm /usr/lib/jvm
@@ -88,20 +99,14 @@ COPY autoforward.py /usr/local/bin/autoforward
8899# - datadog-ci: Datadog CI tool
89100RUN <<-EOT
90101 set -eux
91- sudo apt-get update
92- sudo apt-get install --no-install-recommends apt-transport-https socat
93- sudo apt-get install --no-install-recommends vim less debian-goodies
94- sudo apt-get install --no-install-recommends autossh
95- sudo apt-get install ca-certificates-java
96- sudo apt install python3-pip
97- sudo apt-get -y clean
98- sudo rm -rf /var/lib/apt/lists/*
99- pip3 install awscli
100- pip3 install requests requests-unixsocket2
102+ apt-get update
103+ pip3 install --break-system-packages awscli requests requests-unixsocket2
101104 pip3 cache purge
102- sudo chmod +x /usr/local/bin/autoforward
103- sudo curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci"
104- sudo chmod +x /usr/local/bin/datadog-ci
105+ chmod +x /usr/local/bin/autoforward
106+ curl -L --fail "https://github.com/DataDog/datadog-ci/releases/latest/download/datadog-ci_linux-x64" --output "/usr/local/bin/datadog-ci"
107+ chmod +x /usr/local/bin/datadog-ci
108+ apt-get clean
109+ rm -rf /var/lib/apt/lists/*
105110EOT
106111
107112# IBM specific env variables
0 commit comments