From 81766027bf79199f372f3638d03015c82e1ceb69 Mon Sep 17 00:00:00 2001 From: Paolo Di Tommaso Date: Thu, 13 Apr 2023 21:12:59 +0200 Subject: [PATCH] Use docker stop instead of docker kill Signed-off-by: Paolo Di Tommaso --- .../nextflow/container/DockerBuilder.groovy | 4 ++-- .../nextflow/container/PodmanBuilder.groovy | 4 ++-- .../container/DockerBuilderTest.groovy | 6 +++--- .../container/PodmanBuilderTest.groovy | 4 ++-- .../executor/BashWrapperBuilderTest.groovy | 18 +++++++++--------- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/nextflow/src/main/groovy/nextflow/container/DockerBuilder.groovy b/modules/nextflow/src/main/groovy/nextflow/container/DockerBuilder.groovy index c88ff11b36..8e5e037822 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/DockerBuilder.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/DockerBuilder.groovy @@ -192,9 +192,9 @@ class DockerBuilder extends ContainerBuilder { } if( kill ) { - killCommand = 'docker kill ' + killCommand = 'docker stop ' // if `kill` is a string it is interpreted as a the kill signal - if( kill instanceof String ) killCommand += "-s $kill " + if( kill instanceof String ) killCommand = "docker kill -s $kill " killCommand += name // prefix with sudo if required if( sudo ) killCommand = 'sudo ' + killCommand diff --git a/modules/nextflow/src/main/groovy/nextflow/container/PodmanBuilder.groovy b/modules/nextflow/src/main/groovy/nextflow/container/PodmanBuilder.groovy index ad02dbdbaf..649a85c720 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/PodmanBuilder.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/PodmanBuilder.groovy @@ -156,9 +156,9 @@ class PodmanBuilder extends ContainerBuilder { } if( kill ) { - killCommand = 'podman kill ' + killCommand = 'podman stop ' // if `kill` is a string it is interpreted as a the kill signal - if( kill instanceof String ) killCommand += "-s $kill " + if( kill instanceof String ) killCommand = "podman kill -s $kill " killCommand += name } diff --git a/modules/nextflow/src/test/groovy/nextflow/container/DockerBuilderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/container/DockerBuilderTest.groovy index 51606bae5e..1d0fa6d848 100644 --- a/modules/nextflow/src/test/groovy/nextflow/container/DockerBuilderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/container/DockerBuilderTest.groovy @@ -216,14 +216,14 @@ class DockerBuilderTest extends Specification { then: docker.runCommand == 'docker run -i -v "$PWD":"$PWD" -w "$PWD" --name c1 busybox' docker.removeCommand == 'docker rm c1' - docker.killCommand == 'docker kill c1' + docker.killCommand == 'docker stop c1' when: docker = new DockerBuilder('busybox').setName('c2').params(sudo: true, remove: true).build() then: docker.runCommand == 'sudo docker run -i -v "$PWD":"$PWD" -w "$PWD" --name c2 busybox' docker.removeCommand == 'sudo docker rm c2' - docker.killCommand == 'sudo docker kill c2' + docker.killCommand == 'sudo docker stop c2' when: @@ -231,7 +231,7 @@ class DockerBuilderTest extends Specification { then: docker.runCommand == 'docker run -i -v "$PWD":"$PWD" -w "$PWD" --name c3 busybox' docker.removeCommand == 'docker rm c3' - docker.killCommand == 'docker kill c3' + docker.killCommand == 'docker stop c3' when: docker = new DockerBuilder('busybox').setName('c4').params(kill: 'SIGKILL').build() diff --git a/modules/nextflow/src/test/groovy/nextflow/container/PodmanBuilderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/container/PodmanBuilderTest.groovy index 2041e946bd..47e6404271 100644 --- a/modules/nextflow/src/test/groovy/nextflow/container/PodmanBuilderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/container/PodmanBuilderTest.groovy @@ -160,14 +160,14 @@ class PodmanBuilderTest extends Specification { then: podman.runCommand == 'podman run -i -v "$PWD":"$PWD" -w "$PWD" --name c1 busybox' podman.removeCommand == 'podman rm c1' - podman.killCommand == 'podman kill c1' + podman.killCommand == 'podman stop c1' when: podman = new PodmanBuilder('busybox').setName('c3').params(remove: true).build() then: podman.runCommand == 'podman run -i -v "$PWD":"$PWD" -w "$PWD" --name c3 busybox' podman.removeCommand == 'podman rm c3' - podman.killCommand == 'podman kill c3' + podman.killCommand == 'podman stop c3' when: podman = new PodmanBuilder('busybox').setName('c4').params(kill: 'SIGKILL').build() diff --git a/modules/nextflow/src/test/groovy/nextflow/executor/BashWrapperBuilderTest.groovy b/modules/nextflow/src/test/groovy/nextflow/executor/BashWrapperBuilderTest.groovy index b3a5edffb2..dc77733474 100644 --- a/modules/nextflow/src/test/groovy/nextflow/executor/BashWrapperBuilderTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/executor/BashWrapperBuilderTest.groovy @@ -679,7 +679,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v $(nxf_mktemp):/tmp -v /work/dir:/work/dir -w "$PWD" --name $NXF_BOXID busybox /bin/bash -ue /work/dir/.command.sh' binding.cleanup_cmd == 'docker rm $NXF_BOXID &>/dev/null || true\n' - binding.kill_cmd == 'docker kill $NXF_BOXID' + binding.kill_cmd == 'docker stop $NXF_BOXID' } def 'should create wrapper with docker and environment' () { @@ -693,7 +693,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v $(nxf_mktemp):/tmp -v /work/dir:/work/dir -w "$PWD" --name $NXF_BOXID busybox /bin/bash -c "eval $(nxf_container_env); /bin/bash -ue /work/dir/.command.sh"' binding.cleanup_cmd == 'docker rm $NXF_BOXID &>/dev/null || true\n' - binding.kill_cmd == 'docker kill $NXF_BOXID' + binding.kill_cmd == 'docker stop $NXF_BOXID' and: binding.container_env == '''\ nxf_container_env() { @@ -714,7 +714,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v $(nxf_mktemp):/tmp -v /work/dir:/work/dir -w "$PWD" --name $NXF_BOXID busybox /bin/bash -ue /work/dir/.command.sh' binding.cleanup_cmd == 'docker rm $NXF_BOXID &>/dev/null || true\n' - binding.kill_cmd == 'docker kill $NXF_BOXID' + binding.kill_cmd == 'docker stop $NXF_BOXID' } def 'should create wrapper with docker and legacy entrypoint false and env' () { @@ -728,7 +728,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v $(nxf_mktemp):/tmp -v /work/dir:/work/dir -w "$PWD" --name $NXF_BOXID busybox /bin/bash -c "eval $(nxf_container_env); /bin/bash -ue /work/dir/.command.sh"' binding.cleanup_cmd == 'docker rm $NXF_BOXID &>/dev/null || true\n' - binding.kill_cmd == 'docker kill $NXF_BOXID' + binding.kill_cmd == 'docker stop $NXF_BOXID' and: binding.container_env == '''\ nxf_container_env() { @@ -749,7 +749,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'sudo docker run -i -v /work/dir:/work/dir -w "$PWD" --name $NXF_BOXID busybox /bin/bash -ue /work/dir/.command.sh' binding.cleanup_cmd == 'sudo docker rm $NXF_BOXID &>/dev/null || true\n' - binding.kill_cmd == 'sudo docker kill $NXF_BOXID' + binding.kill_cmd == 'sudo docker stop $NXF_BOXID' } def 'should create wrapper with docker no kill' () { @@ -776,7 +776,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v /work/dir:/work/dir -w "$PWD" --name $NXF_BOXID ubuntu /bin/bash -ue /work/dir/.command.sh' binding.cleanup_cmd == "" - binding.kill_cmd == 'docker kill -s SIGXXX $NXF_BOXID' + binding.kill_cmd == 'docker stop -s SIGXXX $NXF_BOXID' binding.containsKey('kill_cmd') } @@ -791,7 +791,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v /folder\\ with\\ blanks:/folder\\ with\\ blanks -v /work/dir:/work/dir -w "\$PWD" --name \$NXF_BOXID busybox /bin/bash -ue /work/dir/.command.sh' binding.cleanup_cmd == 'docker rm $NXF_BOXID &>/dev/null || true\n' - binding.kill_cmd == 'docker kill $NXF_BOXID' + binding.kill_cmd == 'docker stop $NXF_BOXID' } def 'should create wrapper with docker with scratch' () { @@ -805,7 +805,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'sudo docker run -i -v /work/dir:/work/dir -v "$PWD":"$PWD" -w "$PWD" --name $NXF_BOXID busybox /bin/bash -ue /work/dir/.command.sh' - binding.kill_cmd == 'sudo docker kill $NXF_BOXID' + binding.kill_cmd == 'sudo docker stop $NXF_BOXID' binding.cleanup_cmd == '''\ (sudo -n true && sudo rm -rf "$NXF_SCRATCH" || rm -rf "$NXF_SCRATCH")&>/dev/null || true sudo docker rm $NXF_BOXID &>/dev/null || true @@ -822,7 +822,7 @@ class BashWrapperBuilderTest extends Specification { then: binding.launch_cmd == 'docker run -i -v /work/dir:/work/dir -w "$PWD" -v /foo:/bar --name $NXF_BOXID busybox /bin/bash -ue /work/dir/.command.sh' - binding.kill_cmd == 'docker kill $NXF_BOXID' + binding.kill_cmd == 'docker stop $NXF_BOXID' binding.cleanup_cmd == 'docker rm $NXF_BOXID &>/dev/null || true\n' }