1
1
# syntax=docker/dockerfile:1.6
2
2
3
3
# 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
5
5
6
6
COPY --from=eclipse-temurin:8-jdk-jammy /opt/java/openjdk /usr/lib/jvm/8
7
7
COPY --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
21
21
COPY --from=ghcr.io/graalvm/native-image-community:17-ol9 /usr/lib64/graalvm/graalvm-community-java17 /usr/lib/jvm/graalvm17
22
22
COPY --from=ghcr.io/graalvm/native-image-community:21-ol9 /usr/lib64/graalvm/graalvm-community-java21 /usr/lib/jvm/graalvm21
23
23
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
+
25
29
# See: https://gist.github.com/wavezhang/ba8425f24a968ec9b2a8619d7c2d86a6
26
30
RUN <<-EOT
27
31
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
30
34
EOT
31
35
32
36
# Install Ubuntu's OpenJDK 17 and fix broken symlinks:
33
37
# some files in /usr/lib/jvm/ubuntu17 are symlinks to /etc/java-17-openjdk/, so we just copy all symlinks targets.
34
38
RUN <<-EOT
35
39
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/
41
47
EOT
42
48
43
49
# Remove cruft from JDKs that is not used in the build process.
44
50
RUN <<-EOT
45
- sudo rm -rf \
51
+ rm -rf \
46
52
/usr/lib/jvm/*/man \
47
53
/usr/lib/jvm/*/lib/src.zip \
48
54
/usr/lib/jvm/*/demo \
@@ -59,23 +65,28 @@ COPY --from=all-jdk /usr/lib/jvm/21 /usr/lib/jvm/21
59
65
60
66
# Base image with minimunm requirenents to build the project.
61
67
# 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
63
69
64
70
# https://docs.github.com/en/packages/learn-github-packages/connecting-a-repository-to-a-package
65
71
LABEL org.opencontainers.image.source=https://github.com/DataDog/dd-trace-java-docker-build
66
72
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
68
81
RUN <<-EOT
69
82
set -eu
70
83
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
79
90
EOT
80
91
81
92
COPY --from=default-jdk /usr/lib/jvm /usr/lib/jvm
@@ -88,20 +99,14 @@ COPY autoforward.py /usr/local/bin/autoforward
88
99
# - datadog-ci: Datadog CI tool
89
100
RUN <<-EOT
90
101
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
101
104
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/*
105
110
EOT
106
111
107
112
# IBM specific env variables
0 commit comments