@@ -34,15 +34,22 @@ RUN set -eux; \
3434 deps="$(jdeps --ignore-missing-deps --multi-release ${JAVA_VERSION} \
3535 --print-module-deps app.jar)" ; \
3636 jlink --strip-debug --no-man-pages --no-header-files --compress=2 \
37- --add-modules "${deps},jdk.unsupported" \
38- --output /opt/jre
37+ --add-modules "${deps},jdk.unsupported,java.desktop,java.management,java.logging,java.naming,java.instrument,jdk.crypto.ec" \
38+ --output /opt/jre; \
39+ mkdir -p /opt/runtime-libs; \
40+ for bin in /opt/jre/bin/java /opt/jre/lib/server/libjvm.so; do \
41+ ldd "$bin" \
42+ | awk '/=>/ {print $3} /^[[:space:]]*\/ / {print $1}' ; \
43+ done \
44+ | sort -u \
45+ | xargs -r -I{} cp -L --parents {} /opt/runtime-libs
3946
4047# Prepare the entrypoint script that will run inside the scratch image
4148RUN mkdir -p /opt/config-server \
4249 && cat <<'EOF' > /opt/config-server/entrypoint.sh
4350# !/bin/sh
4451set -e
45- exec /opt/jre/bin/java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar /opt/config-server/app.jar
52+ exec /opt/jre/bin/java -Djava.security.egd=file:/dev/./urandom -Djava.io.tmpdir=/tmp $JAVA_OPTS -jar /opt/config-server/app.jar
4653EOF
4754RUN chmod +x /opt/config-server/entrypoint.sh
4855
@@ -52,6 +59,7 @@ FROM scratch AS runtime
5259
5360ENV JAVA_HOME=/opt/jre
5461ENV JAVA_OPTS=""
62+ ENV HOME=/home/config
5563ENV SERVER_PORT=8888
5664ENV SPRING_PROFILES_ACTIVE=git
5765ENV CONFIG_GIT_URI=https://github.com/spring-cloud-samples/config-repo
@@ -61,10 +69,18 @@ WORKDIR /opt/config-server
6169
6270COPY --from=shell /bin/sh /bin/sh
6371COPY --from=shell /bin/busybox /bin/busybox
72+ COPY --from=shell /tmp /tmp
73+
74+ RUN /bin/busybox chown 1001:1001 /tmp \
75+ && /bin/busybox chmod 1777 /tmp
76+
77+ RUN /bin/busybox mkdir -p /home/config/.config/jgit \
78+ && /bin/busybox chown -R 1001:1001 /home/config
6479
6580COPY --from=jre-build /etc/passwd /etc/passwd
6681COPY --from=jre-build /etc/group /etc/group
6782COPY --from=jre-build /opt/jre /opt/jre
83+ COPY --from=jre-build /opt/runtime-libs/ /
6884COPY --from=jre-build /opt/config-server/entrypoint.sh /opt/config-server/entrypoint.sh
6985COPY --from=build /workspace/app/target/config-server.jar /opt/config-server/app.jar
7086
0 commit comments