Slight correction—Looks like *cat* will keep the docker container running
as long as the *-i* or *-t* flag is passed.
On Monday, January 11, 2016 at 6:32:40 PM UTC-5, Mike Wilkerson wrote:
>
> Hi all—
>
> I'm trying to run steps inside a docker container via *.inside*, but the
> container is killed shortly after running the commands. It appears that the
> docker-workflow plugin is not waiting for the *exec* command behind the
> scenes, and is stopping the container prematurely.
>
> A little context, first:
>
>- Jenkins slave is running on a CentOS Linux release 7.1.1503 VM.
>- Using the official *debian:7* docker image.
>- Docker version 1.9.1, build a34a1d5
>- Jenkins 1.639
>- *This might be unrelated, but it's probably worth mentioning:*
> - The default CentOS Docker install was running the daemon like
> */usr/bin/docker
> daemon -H fd://*
> - I wasn't able to get the docker-workflow plugin to connect to the
> daemon with that configuration, so I modified the service file to
> instead
> run as */usr/bin/docker daemon -H tcp://localhost:2375*
> - I could then successfully use the plugin by running inside a
> *docker.withServer('tcp://localhost:2375',
> '') { ... }* block.
>
>
> Reproducing the issue
>
> Anything running in an *sh* block that finishes very quickly is fine:
>
> *node('docker') {*
> *docker.withServer('tcp://localhost:2375', '') {*
> *docker.image('debian:7').inside {*
> *sh 'printenv'*
> *}*
> *}*
> *}*
>
>
> However, a longer-running command will always fail (Jenkins build fails,
> complaining that the script exited with error code -1):
>
> *node('docker') {*
> *docker.withServer('tcp://localhost:2375', '') {*
> *docker.image('debian:7').inside {*
> *sh 'sleep 300'*
> *}*
> *}*
> *}*
>
>
> Here are some interesting lines from */var/log/messages*:
>
> *Jan 11 15:25:24 jenkins-build-centos7 docker:
> time="2016-01-11T15:25:24.290960195-05:00" level=info msg="POST
> /v1.21/containers/02b6dbc8af81794efe1aeeb43f861e47a803bb3672a9991a63120632127df247/exec"*
> *Jan 11 15:25:24 jenkins-build-centos7 docker:
> time="2016-01-11T15:25:24.293203526-05:00" level=info msg="POST
> /v1.21/exec/39fd717f8dd9797e9a967edc995e0f0e29ed19bcd1837e28410dcd0667f56253/start"*
> *Jan 11 15:25:25 jenkins-build-centos7 docker:
> time="2016-01-11T15:25:25.350407441-05:00" level=info msg="POST
> /v1.21/containers/02b6dbc8af81794efe1aeeb43f861e47a803bb3672a9991a63120632127df247/stop?t=10"*
> *Jan 11 15:25:35 jenkins-build-centos7 docker:
> time="2016-01-11T15:25:35.351254649-05:00" level=info msg="Container
> 02b6dbc8af81794efe1aeeb43f861e47a803bb3672a9991a63120632127df247 failed to
> exit within 10 seconds of SIGTERM - using the force"*
> *Jan 11 15:25:35 jenkins-build-centos7 docker:
> time="2016-01-11T15:25:35.359447435-05:00" level=info msg="GET
> /v1.21/exec/39fd717f8dd9797e9a967edc995e0f0e29ed19bcd1837e28410dcd0667f56253/json"*
>
>
> It looks like the docker-workflow plugin is immediately issuing a *stop*
> call to the API, right after the *exec* call.
>
>
> Attempt at a solution
>
> I noticed that the docker-workflow plugin calls the image by passing the
> *cat* command:
>
> *docker run -t -d -u 1000:1000 -w /home/jenkins/workspace/docker-test -v
> /home/jenkins/workspace/docker-test:/home/jenkins/workspace/docker-test:rw
> -e -e -e -e -e -e -e
> -e -e -e -e -e -e
> -e -e -e debian:7 cat*
>
> ...which would cause the container to run *cat* and then immediately
> exit. I created a simple dockerfile, based off of the *debian:7* image,
> and set the *ENTRYPOINT* to *["ping", "localhost"]*, just to have a
> process that would run indefinitely, even if docker-workflow supplied
> *cat* as the command to *docker run*. Unfortunately this changed nothing,
> and I still noticed the same API call to *stop* in */var/log/messages*.
>
> I'm at a loss here. Anyone seen anything like this before?
>
> Thanks,
> Mike Wilkerson
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/8add3a29-3799-4530-a0c2-023342bbf0c5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.