Update Dockerfile and startapp.sh to include gosu for signal handling and privilege dropping

This commit is contained in:
eyedeekay
2026-07-15 17:57:21 -04:00
parent 308ab71416
commit ddad235909
2 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -19,15 +19,15 @@ RUN apk add --no-cache gettext tar bzip2 curl openjdk21 \
# --- Runtime stages per architecture ---
FROM debian:bookworm-slim AS runtime-amd64
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jre-headless fonts-dejavu iproute2 \
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jre-headless fonts-dejavu iproute2 gosu \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
FROM debian:bookworm-slim AS runtime-arm64
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jre-headless fonts-dejavu iproute2\
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jre-headless fonts-dejavu iproute2 gosu \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
FROM debian:bookworm-slim AS runtime-arm
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jre-headless fonts-dejavu iproute2 \
RUN apt-get update && apt-get install -y --no-install-recommends openjdk-17-jre-headless fonts-dejavu iproute2 gosu \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Select runtime based on target architecture
+2 -2
View File
@@ -78,5 +78,5 @@ JAVAOPTS="-Djava.net.preferIPv4Stack=false -Djava.library.path=${I2P}:${I2P}/lib
mkdir -p "$HOME/.i2p" && chown -R i2p:i2p "$HOME/.i2p"
# Execute the Java application with the constructed classpath and options
# The `exec` command replaces the shell with the Java process, ensuring that it receives signals directly and can shut down gracefully.
exec runuser -u i2p -- java -cp "${CLASSPATH}" ${JAVAOPTS} ${JAVA17OPTS} net.i2p.router.RouterLaunch
# gosu handles signal forwarding and privilege dropping
gosu i2p java -cp "${CLASSPATH}" ${JAVAOPTS} ${JAVA17OPTS} net.i2p.router.RouterLaunch