Skip to content

Commit c9cf4e8

Browse files
committed
Replace cimg base image with ubuntu:24.04
1 parent dc4d8e1 commit c9cf4e8

File tree

1 file changed

+39
-34
lines changed

1 file changed

+39
-34
lines changed

Dockerfile

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ARG LATEST_VERSION
44
FROM 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
88
ARG LATEST_VERSION
99

1010
COPY --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
2626
COPY --from=ghcr.io/graalvm/native-image-community:17-ol9 /usr/lib64/graalvm/graalvm-community-java17 /usr/lib/jvm/graalvm17
2727
COPY --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
3135
RUN <<-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
3539
EOT
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.
3943
RUN <<-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/
4652
EOT
4753

4854
# Remove cruft from JDKs that is not used in the build process.
4955
RUN <<-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
6571
COPY --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
7076
ARG LATEST_VERSION
7177
ENV LATEST_VERSION=${LATEST_VERSION}
7278

7379
# https://docs.github.com/en/packages/learn-github-packages/connecting-a-repository-to-a-package
7480
LABEL 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
7790
RUN <<-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
8899
EOT
89100

90101
COPY --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
98109
RUN <<-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/*
114119
EOT
115120

116121
# IBM specific env variables

0 commit comments

Comments
 (0)