我在MacOS HighSierra上使用Jenkins版本2.121.1和管道。
我有一个shell脚本,名为build\u docker\u image。使用以下命令生成docker映像的sh:
docker build -t test_api:1 -f test-dockerfile
test-dockerfile是一个Dockerfile,具有构建镜像的说明。
从CLI的整个设置工作!但是,当我从Jenkins服务器Pipeline上下文运行它时,它在上面一行失败并出现错误:
在unix://var/run/docker.sock试图连接到Docker守护程序套接字时,权限被拒绝:发布超文本传输协议:///var/run/docker.sock/v1.37/build?buildargs={}
从Jenkins服务器触发的步骤很简单。只需调用脚本:
stage ('Build-Docker-Image') {
steps {
sh '/path/to/build-docker_image.sh'
}
}
我确保Jenkins用户拥有“管理员”权限和“工作人员”组成员。我也在shell脚本中打印了它们,如下所示:
WHOAMI jenkins ID=uid=267(jenkins)gid=267(jenkins)egid=1(守护进程)组=267(jenkins)、12(所有人)、20(员工)、61(本地帐户)、80(管理员)、701(com.apple.sharepoint.group.1)、33(应用商店)、98(lpadmin)、100(lpoperator)、204(开发者)、250(分析用户)、395(com.apple.access.ftp)、398(com.apple.access\u屏幕共享)、399(apple.access\ssh)
我遵循了此处提到的变通步骤:https://github.com/docker/for-mac/issues/799.我已经在我的Mac上重新启动了Docker好几次了。这没有帮助。
我懂了:
id uid=267(jenkins) gid=267(jenkins) groups=267(jenkins),12(everyone),20(staff),61(localaccounts),80(admin),701(com.apple.sharepoint.group.1),33(_appstore),98(_lpadmin),100(_lpoperator),204(_developer)
我在列表中没有看到组docker:
sudo usermod -a -G docker jenkins
重启詹金斯,看看问题是否仍然存在。
另一个注意事项是,我总是使用meosphoere/dcos-jenkins-dind-agent/Dockerfile.alpine
作为Jenkins代理,用于我涉及docker的构建,正是因为我不想共享主主机/var/run/docker.sock
如果我的构建执行了一个docker系统修剪--force
,这可能会对我的主机映像/容器/卷产生毁灭性的影响,即使该命令仅用于本地构建docker工件。
在Mac上,线程“不再有“docker”组”建议:
docker run ... --group-add staff
检查此示例:
macdev() {
CMD=${2:-/bin/bash}
set_title "dev : $1"
local name=dev-$1
docker inspect $name > /dev/null 2>&1
if [ $? = 0 ]; then
docker attach $name
else
docker run -ti --restart=always \
-e PROJECT=$1 \
--net=host \
--name=$name \
-v $HOME/.vim:/home/ehazlett/.vim \
-v $HOME/.vimrc:/home/ehazlett/.vimrc \
-v $HOME/.bashrc:/home/ehazlett/.bashrc \
-v $HOME/.ssh/config:/home/ehazlett/.ssh/config \
-v ~/Sync:/home/ehazlett/Sync \
-v ~/.docker:/home/ehazlett/.docker \
-v /var/run/docker.sock:/var/run/docker.sock \
--group-add staff \
ehazlett/devbox $CMD
fi
}
有人知道如何解决这个问题吗?不能在R. install.packages("devool")还安装了依赖项'ps','fs','Procexx','xopen','usethis','Call r','git2r','pkgbuild','pkgload','rcmdcheck','roxygen2' null 下载的源程序包位于“/private/var/folders/s2/cptzh4ls2
我遵循本教程为烧瓶应用程序创建Docker映像。应用程序取决于Torch/PyTorch。因此,我的文件如下所示。 我的Dockerfile如下所示。 当我输入命令
我是IntelliJ和Android开发的新手。我的问题是,当我试图构建一个gradle项目时,它会失败并抛出错误代码B0。 我已经将我的Gradle版本更新到5.1.1,但错误仍然存在 谢谢,对不起我的英语!
似乎“.dotnet”文件夹在Docker容器中受到保护。是否有一种方法可以获得对此的读/写权限,或者改变它的位置?当我猛击容器时,我似乎找不到文件夹。 谢谢你的帮助。
目前,我发现谷歌云构建发生在构建docker图像的时候(不像我想象的那样,它会构建我的图像,然后执行我的图像来完成所有的构建)。那是在这篇文章里 谷歌云构建的快速启动 我有一个Dockerfile现在很简单 我有一个单一的下载和提取下载任何工件(zip文件)从最后的单构建运行构建(只有修改的服务器被构建或依赖于上一个CI构建的变化的服务器被构建,就像下游库可能被更改)。第一行只是列出了我需要在一个