jenkins job';s shell和bash-on-docker容器

jenkins job';s shell和bash-on-docker容器,shell,docker,jenkins,Shell,Docker,Jenkins,我已经在docker容器上安装了jenkins master,并在docker容器中使用Swarm插件运行了一个从机。我在docker slave中创建了一个组。使用docker exec-it bash进入从属容器后,键入groups正确列出我创建的组 但是,当我在职务说明shell中键入组并在创建的从属服务器上执行职务时,我的组不会出现 编辑: 从属容器:只需以用户身份启动jenkins从属容器jenkins。启动时,通过CMD[“/startup.sh”]执行以下代码(脚本:startup

我已经在docker容器上安装了jenkins master,并在docker容器中使用Swarm插件运行了一个从机。我在docker slave中创建了一个组。使用
docker exec-it bash进入从属容器后,键入
groups
正确列出我创建的组

但是,当我在职务说明shell中键入
并在创建的从属服务器上执行职务时,我的组不会出现

编辑: 从属容器:只需以用户身份启动jenkins从属容器
jenkins
。启动时,通过
CMD[“/startup.sh”]
执行以下代码(脚本:startup.sh)。下提供了jenkins slave.sh的

从bash启动后:
docker exec-it 8b85afe2b360组
输出
jenkins dockergrp

触发仅包含以下代码的作业:

whoami
groups
docker ps
输出

 jenkins
 jenkins
 Got permission denied while trying to connect to the Docker 
         daemon socket at unix:///var/run/docker.sock: Get 
         http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/json: dial 
         unix /var/run/docker.sock: connect: permission denied
第二行中缺少组
dockergrp


总的来说,如果没有
sudo
,我无法访问docker守护程序,问题似乎是缺少组。运行命令
docker exec-it docker ps
成功输出我正在运行的容器

添加组时存在一个已知问题,对于已登录的用户,不会重新加载组


尝试将最后一行更改为:

sudo su -l jenkins -c /usr/local/bin/jenkins-slave.sh
以在新的jenkins登录下启动脚本

注意:您可以预先添加
exec
指令,以避免子进程,因此只需替换当前进程即可:

exec sudo su -l jenkins -c /usr/local/bin/jenkins-slave.sh

打印您的容器id,查看jenkins是否正在运行新的容器以及哪些图像。您是如何添加这样的组的?使用自定义Dockerfile?容器肯定是创建的容器。我运行了
sudo-groupadd-for-g
,最后运行了
sudo-usermod-aG-jenkins
。仍然没有弄清楚在您的终端是如何设置的。请尝试将最后一行更改为:
sudo-su-l-jenkins-c/usr/local/bin/jenkins-slave.sh
。添加未重新加载的组时存在已知问题您的建议解决了此问题。:-)谢谢请添加答案以获得分数。
exec sudo su -l jenkins -c /usr/local/bin/jenkins-slave.sh