Can't run shell script in docker container

31 views
Skip to first unread message

Илья Скорик

unread,
Sep 2, 2021, 7:18:50 AM9/2/21
to Jenkins Users
Good day!

I am trying to run a shell script in a docker container.  The script is created on the host in the folder: 
/var/jenkins_home/workspace/Production/Test2@tmp

The container by default is starts with the following volumes:
--volume /var/jenkins_home:/var/jenkins_home:rw --volume /tmp:/tmp:rw

But it is launched in the container from the folder:
/bin/sh: can't open '/tmp/jenkins15846770116304196347.sh': No such file or directory Build step 'Execute shell' marked build as failure

How to fix that issue?

Jerome Godbout

unread,
Sep 2, 2021, 9:18:02 AM9/2/21
to Jenkins Users

Are you sure the mount of tmp did work and not superseed by another default mount there?

Maybe try to touch a new file from the docker and see if it show up into the original tmp folder. If so, it mean you might have permission problems instead. Make sure to allow rw for everyone on the file before.

Björn Pedersen

unread,
Sep 3, 2021, 2:01:13 AM9/3/21
to Jenkins Users
How are you starting the container and run the script?  From the locations it looks like  a sh step in a pipeline. 
Then you should  not mount jenkins_home or temp that way.  
Instead use a docker.image.inside step to  run the script. It will  do the  correct mounting. 
(/tmp should mount /var/jenkins_home/workspace/Production/Test2@tmp, not the host tmp ,and the container should also mount
the workspace ( /var/jenkins_home/workspace/Production/Test2[@n]) only, not the full jenkins home.)

Reply all
Reply to author
Forward
0 new messages