This is an automated email from the ASF dual-hosted git repository.

ayegorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 4710fed  Ensure BookKeeper process receives sigterm in docker container
4710fed is described below

commit 4710fed8a409736e9e5e0aae5b87fdc6b56ed51a
Author: Jack Vanlightly <[email protected]>
AuthorDate: Mon Feb 14 19:56:19 2022 +0100

    Ensure BookKeeper process receives sigterm in docker container
    
    ### Motivation
    
    Current official docker images do not handle the SIGTERM sent by the docker 
runtime and so get killed after the timeout. No graceful shutdown occurs.
    
    The reason is that the entrypoint does not use `exec` when executing the 
`bin/bookkeeper` shell script and so the BookKeeper process cannot receive 
signals from the docker runtime.
    
    ### Changes
    
    Use `exec` when calling the `bin/bookkeeper` shell script.
    
    Reviewers: Nicolò Boschi <[email protected]>, Enrico Olivelli 
<[email protected]>, Lari Hotari <None>, Matteo Merli <[email protected]>
    
    This closes #2857 from Vanlightly/docker-image-handle-sigterm
---
 docker/scripts/entrypoint.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docker/scripts/entrypoint.sh b/docker/scripts/entrypoint.sh
index 657eb6b..753f59a 100755
--- a/docker/scripts/entrypoint.sh
+++ b/docker/scripts/entrypoint.sh
@@ -41,11 +41,11 @@ function run_command() {
         chmod -R +x ${BINDIR}
         chmod -R +x ${SCRIPTS_DIR}
         echo "This is root, will use user $BK_USER to run command '$@'"
-        sudo -s -E -u "$BK_USER" /bin/bash "$@"
+        exec sudo -s -E -u "$BK_USER" /bin/bash -c 'exec "$@"' -- "$@"
         exit
     else
         echo "Run command '$@'"
-        $@
+        exec "$@"
     fi
 }
 

Reply via email to