Skip to content

Commit 344b842

Browse files
author
Ubuntu
committed
upgrade to Java 21
1 parent c2a4e33 commit 344b842

File tree

4 files changed

+31
-17
lines changed

4 files changed

+31
-17
lines changed

Dockerfile

+10-10
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ RUN yum -y update \
66
zlib-devel glibc-static libcxx libcxx-devel llvm-toolset-7 zlib-static \
77
&& rm -rf /var/cache/yum
88

9-
ENV JDK_FOLDERNAME jdk-17
10-
ENV JDK_FILENAME openjdk-17_linux-x64_bin.tar.gz
11-
RUN curl -4 -L https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/${JDK_FILENAME} | tar -xvz
12-
RUN mv $JDK_FOLDERNAME /usr/lib/jdk17
9+
ENV JDK_FOLDERNAME jdk-21
10+
ENV JDK_FILENAME openjdk-21_linux-x64_bin.tar.gz
11+
RUN curl -4 -L https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz | tar -xvz
12+
RUN mv $JDK_FOLDERNAME /usr/lib/jdk21
1313
RUN yum install -y binutils
1414
RUN rm -rf $JDK_FOLDERNAME
15-
ENV PATH="/usr/lib/jdk17/bin:$PATH"
16-
RUN jlink --add-modules "$(java --list-modules | cut -f1 -d'@' | tr '\n' ',')" --compress 0 --no-man-pages --no-header-files --strip-debug --output /opt/jre17-slim
17-
RUN find /opt/jre17-slim/lib -name *.so -exec strip -p --strip-unneeded {} \;
15+
ENV PATH="/usr/lib/jdk21/bin:$PATH"
16+
RUN jlink --add-modules "$(java --list-modules | cut -f1 -d'@' | tr '\n' ',')" --compress 0 --no-man-pages --no-header-files --strip-debug --output /opt/jre21-slim
17+
RUN find /opt/jre21-slim/lib -name *.so -exec strip -p --strip-unneeded {} \;
1818
RUN java -Xshare:dump -version
19-
RUN rm /opt/jre17-slim/lib/classlist
20-
RUN cp /usr/lib/jdk17/lib/server/classes.jsa /opt/jre17-slim/lib/server/classes.jsa
21-
RUN cd /opt/ && zip -r jre-17-slim.zip jre17-slim
19+
RUN rm /opt/jre21-slim/lib/classlist
20+
RUN cp /usr/lib/jdk21/lib/server/classes.jsa /opt/jre21-slim/lib/server/classes.jsa
21+
RUN cd /opt/ && zip -r jre-21-slim.zip jre21-slim

bootstrap

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#!/bin/sh
22

3-
/opt/jre17-slim/bin/java --add-opens java.base/java.util=ALL-UNNAMED -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xshare:on -cp "/opt/aws-lambda-java-runtime-interface-client-1.1.0.jar:/opt/aws-lambda-java-core-1.2.1.jar:/opt/aws-lambda-java-serialization-1.0.0.jar:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/*:$LAMBDA_TASK_ROOT/lib/*" com.amazonaws.services.lambda.runtime.api.client.AWSLambda "$_HANDLER"
3+
# Should we use -Xshare:on? @msailes did originally...
4+
# -Xlog:cds is important for solving the CDS problem.
5+
/opt/jre21-slim/bin/java --add-opens java.base/java.util=ALL-UNNAMED -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xshare:auto -cp "/opt/aws-lambda-java-runtime-interface-client-2.4.1.jar:/opt/aws-lambda-java-core-1.2.3.jar:/opt/aws-lambda-java-serialization-1.1.2.jar:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/*:$LAMBDA_TASK_ROOT/lib/*" com.amazonaws.services.lambda.runtime.api.client.AWSLambda "$_HANDLER"

build-jre.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
docker build --progress=plain -t jre17-al2-slim .
2-
docker run -v $(pwd)/layer:/tmp -it jre17-al2-slim sh -c "cp /opt/jre-17-slim.zip /tmp"
1+
docker build -t jre21-al2-slim .
2+
docker run -v $(pwd)/layer:/tmp -it jre21-al2-slim sh -c "cp /opt/jre-21-slim.zip /tmp"

make-layer.sh

+16-4
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,20 @@
33
# -4 IPv4 only
44
# -L follow redirect if the server responds with a redirect
55
mkdir layer
6-
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-runtime-interface-client/1.1.0/aws-lambda-java-runtime-interface-client-1.1.0.jar -o layer/aws-lambda-java-runtime-interface-client-1.1.0.jar
7-
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-core/1.2.1/aws-lambda-java-core-1.2.1.jar -o layer/aws-lambda-java-core-1.2.1.jar
8-
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-serialization/1.0.0/aws-lambda-java-serialization-1.0.0.jar -o layer/aws-lambda-java-serialization-1.0.0.jar
6+
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-runtime-interface-client/2.4.1/aws-lambda-java-runtime-interface-client-2.4.1.jar -o layer/aws-lambda-java-runtime-interface-client-2.4.1.jar
7+
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-core/1.2.3/aws-lambda-java-core-1.2.3.jar -o layer/aws-lambda-java-core-1.2.3.jar
8+
curl -4 -L https://repo.maven.apache.org/maven2/com/amazonaws/aws-lambda-java-serialization/1.1.2/aws-lambda-java-serialization-1.1.2.jar -o layer/aws-lambda-java-serialization-1.1.2.jar
99

10-
chmod 755 bootstrap && zip -r java17layer.zip jre17-slim bootstrap layer/aws-lambda-java-runtime-interface-client-1.1.0.jar layer/aws-lambda-java-core-1.2.1.jar layer/aws-lambda-java-serialization-1.0.0.jar
10+
chmod 755 bootstrap
11+
12+
cp bootstrap layer
13+
14+
pushd layer
15+
16+
rm -rf jre21-slim
17+
unzip jre-21-slim.zip
18+
19+
rm -f ../java21layer.zip
20+
zip -r ../java21layer.zip bootstrap jre21-slim aws-lambda-java-runtime-interface-client-2.4.1.jar aws-lambda-java-core-1.2.3.jar aws-lambda-java-serialization-1.1.2.jar
21+
22+
popd

0 commit comments

Comments
 (0)