diff --git a/Dockerfile b/Dockerfile index 56088dee..97d71f1f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,4 +28,4 @@ COPY --from=builder /usr/src/openas2/Runtime/resources ${OPENAS2_BASE}/resources COPY --from=builder /usr/src/openas2/Runtime/config_template ${OPENAS2_HOME}/config_template RUN mkdir ${OPENAS2_BASE}/config WORKDIR $OPENAS2_HOME -ENTRYPOINT ${OPENAS2_BASE}/bin/start-container.sh \ No newline at end of file +ENTRYPOINT ["/opt/openas2/bin/start-container.sh"] \ No newline at end of file diff --git a/Server/src/bin/start-openas2.sh b/Server/src/bin/start-openas2.sh index c24230e8..c8c4ba14 100755 --- a/Server/src/bin/start-openas2.sh +++ b/Server/src/bin/start-openas2.sh @@ -94,7 +94,8 @@ if [ "true" = "$OPENAS2_AS_DAEMON" ]; then echo $PID > $OPENAS2_PID fi else - ${CMD} - RETVAL="$?" + # Replace the shell with the java process so it receives signals directly + # (required for clean shutdown when running as PID 1 in a container) + exec ${CMD} fi exit $RETVAL diff --git a/start-container.sh b/start-container.sh index aa5981ac..c43f4b2a 100644 --- a/start-container.sh +++ b/start-container.sh @@ -49,5 +49,5 @@ if [ ! -e $OPENAS2_PROPERTIES_FILE ] done fi -# Start OpenAS2 in foreground -$(dirname $0)/start-openas2.sh +# Start OpenAS2 in foreground, replacing this shell so signals reach the JVM +exec $(dirname $0)/start-openas2.sh