Skip to content

Commit 7d4fb8a

Browse files
committed
it's a mess, but it works.
1 parent 80130a9 commit 7d4fb8a

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

Dockerfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
FROM amazonlinux:2 as packager
2+
3+
RUN yum -y update \
4+
&& yum install -y tar zip gzip bzip2-devel ed gcc gcc-c++ gcc-gfortran \
5+
less libcurl-devel openssl openssl-devel readline-devel xz-devel \
6+
zlib-devel glibc-static libcxx libcxx-devel llvm-toolset-7 zlib-static \
7+
&& rm -rf /var/cache/yum
8+
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
13+
RUN yum install -y binutils
14+
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 {} \;
18+
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

bootstrap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
#export _JAVA_OPTIONS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1"
44

5-
/opt/jdk/bin/java -cp aws-lambda-java-runtime-interface-client-1.1.0.jar com.amazonaws.services.lambda.runtime.api.client.AWSLambda "$_HANDLER"
5+
/opt/jre17-slim/bin/java --add-opens java.base/java.util=ALL-UNNAMED -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"

build-jre.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
docker build --progress=plain -t graalvm-al2-slim .
2+
docker run -v $(pwd)/layer:/tmp -it graalvm-al2-slim sh -c "cp /opt/jre-17-slim.zip /tmp"

make-layer.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
# -4 IPv4 only
44
# -L follow redirect if the server responds with a redirect
55

6-
curl -4 -L https://builds.shipilev.net/openjdk-jdk17/openjdk-jdk17-linux-x86_64-server-release.tar.xz | tar -xvz
76
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 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 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 aws-lambda-java-serialization-1.0.0.jar
89

9-
chmod 755 bootstrap && zip -r java17layer.zip jdk bootstrap aws-lambda-java-runtime-interface-client-1.1.0.jar
10+
chmod 755 bootstrap && zip -r java17layer.zip jre17-slim bootstrap aws-lambda-java-runtime-interface-client-1.1.0.jar aws-lambda-java-core-1.2.1.jar aws-lambda-java-serialization-1.0.0.jar

0 commit comments

Comments
 (0)