-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDockerfile.base
45 lines (42 loc) · 2.57 KB
/
Dockerfile.base
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
FROM python:3.11.4-slim-bookworm
#########
# Taken from https://github.com/corretto/corretto-docker/blob/df7c548293c02db289dfe7de38c90e92a43e5fcf/20/slim/debian/Dockerfile
# With apt-get replacement acording to https://github.com/carlossg/docker-maven/blob/22ef0c5155e8cf9458723c51271cc55ed573d861/amazoncorretto-20-debian/Dockerfile
#########
ARG JAVA_VERSION=20.0.2.9-1
# In addition to installing the Amazon corretto, we also install
# fontconfig. The folks who manage the docker hub's
# official image library have found that font management
# is a common usecase, and painpoint, and have
# recommended that Java images include font support.
#
# See:
# https://github.com/docker-library/official-images/blob/master/test/tests/java-uimanager-font/container.java
#
# Slim:
# JLink is used (retaining all modules) to create a slimmer version of the JDK excluding man-pages, header files and debugging symbols - saving ~113MB.
RUN set -ux \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
curl ca-certificates gnupg software-properties-common fontconfig \
&& export GNUPGHOME="$(mktemp -d)" \
&& curl -fL https://apt.corretto.aws/corretto.key | gpg --batch --import - \
&& gpg --batch --export '6DC3636DAE534049C8B94623A122542AB04F24E3' > /usr/share/keyrings/corretto.gpg \
&& rm -r "$GNUPGHOME" \
&& unset GNUPGHOME \
&& echo "deb [signed-by=/usr/share/keyrings/corretto.gpg] https://apt.corretto.aws stable main" > /etc/apt/sources.list.d/corretto.list \
&& mkdir -p /usr/share/man/man1 \
&& apt-get update \
&& apt-get install -y java-20-amazon-corretto-jdk=1:$JAVA_VERSION binutils \
&& jlink --add-modules "$(java --list-modules | sed -e 's/@[0-9].*$/,/' | tr -d \\n)" --no-man-pages --no-header-files --strip-debug --output /opt/corretto-slim \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
curl gnupg software-properties-common binutils java-20-amazon-corretto-jdk=1:$JAVA_VERSION \
&& mkdir -p /usr/lib/jvm \
&& mv /opt/corretto-slim /usr/lib/jvm/java-20-amazon-corretto \
&& jdk_tools="java keytool rmid rmiregistry javac jaotc jlink jmod jhsdb jar jarsigner javadoc javap jcmd jconsole jdb jdeps jdeprscan jimage jinfo jmap jps jrunscript jshell jstack jstat jstatd serialver" \
&& priority=$(echo "1${JAVA_VERSION}" | sed "s/\(\.\|-\)//g") \
&& for i in ${jdk_tools}; do \
update-alternatives --install /usr/bin/$i $i /usr/lib/jvm/java-20-amazon-corretto/bin/$i ${priority}; \
done
ENV LANG C.UTF-8
ENV JAVA_HOME=/usr/lib/jvm/java-20-amazon-corretto