是否可以在不使用docker文件的情况下在docker运行期间运行shell命令?
我现在所拥有的就是这个,但是似乎启动了容器,然后再运行sh脚本。我需要在容器运行期间设置用户,因为它以超级用户特权运行(如果我输入错了,请纠正我)。
node('linuxNode') {
docker.image('docker/repo').inside(
'--privileged ' +
'--volume "...")
{
sh '/home/path/to/script/createNewUser.sh'
}
}
答案 0 :(得分:0)
解决了我的问题,在我以'-v ____'+'-v ____'+ ...形式给出参数之前,由于某种原因,jenkins docker工作流插件正在扰乱此参数的顺序。因此,我在末尾加上了一个长命令sh。
多数情况下应该可以解决该问题,但是在我的情况下,进一步的麻烦是,docker文件在我的参数之后添加了其他参数(主要是环境变量),因此sh命令仍然不是最后一个。
因此,我不得不放弃docker.image()。inside并使用
docker run -d -t -v _____ script.sh
docker exec containername {sh command}
启动容器并在其中运行其他命令。