一 全局配置项设置

  • 需要添加全局变量项,例如名称docker,路径/usr/local
  • 添加一个jenkinsfile文件,用于运行docker命令
  1. pipeline {
  2. agent any
  3. tools{
  4. gradle "gradle"
  5. }
  6. stages {
  7. stage('init') {
  8. steps {
  9. script{
  10. def dockerPath = tool 'docker' //全局配置里的docker
  11. env.PATH = "${dockerPath}/bin:${env.PATH}" //添加了系统环境变量上
  12. }
  13. }
  14. }
  15. stage('Build') {
  16. steps {
  17. script{
  18. sh "docker --version"
  19. }
  20. }
  21. }
  22. }
  23. }

注意:我们需要把docker的路径添加到env环境变量里才可以使用docker命令,这个我试了很多次。

二 添加jenkins用户到docker组

上面的操作完成之后,你的docker --version是可以打印了,但还不能执行docker命令,还需要你把jenkins用户添加到docker用户组里。

没有添加用户组会有这个错误提示

  1. docker run --rm -v /Users/Shared/Jenkins/Home/workspace/helloJava:/src --user root --privileged=true alpine:3.6 sh -c 'cp /src/src/main/docker/Dockerfile /src/build/libs'
  2. docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.

当前用户添加到docker组

  1. sudo gpasswd -a ${USER} docker
  2. #或者将当前用户直接加到文件中
  3. sudo echo "docker:x:994:${USER}" >> /etc/group
  4. #查看docker用户组成员
  5. cat /etc/group |grep docker
  6. #重新启动docker服务
  7. sudo systemctl restart docker
  8. # 赋予权限
  9. sudo chmod a+rw /var/run/docker.sock

修改jenkins用户的拥有者

  1. sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
  2. sudo vim /Library/LaunchDaemons/org.jenkins-ci.plist
  3. sudo chown -R lind.zhang:docker /Users/Shared/Jenkins/
  4. sudo chown -R lind.zhang:docker /var/log/jenkins/
  5. 启动jenkins
  6. sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

大功告成

  1. [Pipeline] script
  2. [Pipeline] {
  3. [Pipeline] sh
  4. + docker run alpine:3.6 /bin/echo hello
  5. hello
  6. [Pipeline] }
  7. [Pipeline] // script
  8. [Pipeline] }
  9. [Pipeline] // withEnv
  10. [Pipeline] }
  11. [Pipeline] // stage
  12. [Pipeline] }
  13. [Pipeline] // withEnv
  14. [Pipeline] }
  15. [Pipeline] // withEnv
  16. [Pipeline] }
  17. [Pipeline] // node
  18. [Pipeline] End of Pipeline
  19. Finished: SUCCESS

MacOS~jenkins里解决docker执行权限问题的更多相关文章

  1. Ubuntu、CentOS 解决docker命令权限问题(sudo)

    #创建docker组 weiyj@ubuntu18:~$ sudo groupadd docker groupadd: group 'docker' already exists #将当前用户加入do ...

  2. 在 docker 安装 jenkins (解决无法访问jenkins的错误)

    前提:安装好docker. 拉取Jenkins镜像: python docker pull jenkins 遇到错误:Docker:TLS handshake timeout错误 原因:国外,网速慢, ...

  3. Docker 安装 Jenkins , 并解决初始安装插件失败

    安装 Jenkins 后,初始化下载插件总是失败,导致安装不成功,重试好几次都是卡在安装插件那. 这里记录下 Docker 下怎么安装 Jenkins ,并解决初始安装插件失败问题. 安装插件失败,其 ...

  4. Docker: Jenkins里的pipeline编写基本技巧

    Jenkins里,先新建一个pipeline项目 Pipeline Syntax 在Sample Step里选择需要的插件,如果不存在,就去系统管理,插件管理里,进行安装. 如果源码管理工具用的是gi ...

  5. 使用jenkins来跑docker image的惨痛经历

    记录一下我使用jenkins来跑docker container的艰辛路程吧,是照着jenkins官网的[文档](https://jenkins.io/doc/tutorials/build-a-ja ...

  6. jenkins里跑selenium webdriver,Chrome浏览器不能打开&&unknown error: unable to discover open pages

    在windows的cmd里面执行 “python test.py”,毫无问题,浏览器正常打开,测试结果也正常. 问题: 但如果是在jenkins里,选择 “execute windows batch ...

  7. apache禁止访问文件或目录执行权限、禁止运行脚本PHP文件的设置方法

      <Directory "要去掉PHP执行权限的目录路径,例如:D:/piaoyun.cc/upload"> ErrorDocument 404 /404/404.h ...

  8. jenkins+git实现docker持续部署

    jenkins所做的事情很简单,就拿我现在的情况来说吧,(1).每次开发完成,我都会push到我的远程仓库:(2).我再将我push到远程仓库的代码pull到我的测试服务器上:(3).在测试服务器上, ...

  9. 非系统服务如何随系统启动时自动启动(rc.local加了可执行权限,仍然没有生效)

    我们知道,例如我们直接yum 安装的httpd mysqld之类的服务可以直接systemctl enable mysql使服务自动启动,但是,我们应该关心的是但是的那部分 例如nginx,我的话,我 ...

随机推荐

  1. Vue之使用JsonView来展示Json树

    前两天干活儿有个需求,在前端需要展示可折叠的Json树,供开发人员查看,这里采用JsonView组件来实现,它是一款用于展示Json的Vue组件,支持大体积的Json文件快速解析渲染,下面记录一下实现 ...

  2. 微服务分布式 spring cloud springboot 框架源码 activiti工作流 前后分离

    1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...

  3. onTouchEvent中,跟随手指滑动的view出现抖动

    在这次实践中,它抖动得不正常,太不正常,太抖. 其实是我代码上出现了问题,记录一下. 我是怎么设置滑动的呢? 通过改变view的margin. 然而我在onTouchEvent中怎么控制它滑动的大小呢 ...

  4. Pycharm导入Django项目

    Pycharm导入Django项目 添加项目:file-->open,找到项目所在的位置打开项目 添加django后台项目路径 file-->settings-->Languages ...

  5. Context知识详解

    Context知识详解 建议配合context知识架构图食用. 一.什么是Context 贴一个官方解释: Interface to global information about an appli ...

  6. IT兄弟连 HTML5教程 CSS3属性特效 遮罩

    CSS遮罩提供一种基于像素级别的,可以控制元素透明度的能力,类似于png24位或png32位中的alpha透明通道的效果.遮罩有三个属性可以设置,分别是mask-image.mask-position ...

  7. 【THUPC 2018】赛艇

    Problem Description Lavender.Caryophyllus.Jasmine.Dianthus现在在玩一款名叫"赛艇"的游戏. 这个游戏的规则是这样的: 玩家 ...

  8. Dubbo学习系列之十四(Seata分布式事务方案AT模式)

    一直说写有关最新技术的文章,但前面似乎都有点偏了,只能说算主流技术,今天这个主题,我觉得应该名副其实.分布式微服务的深水区并不是单个微服务的设计,而是服务间的数据一致性问题!解决了这个问题,才算是把分 ...

  9. java后台树形结构展示---懒加载

    一.数据库设计 二.实体类:entity import com.joyoung.cloud.security.common.validatedGroup.Add;import com.joyoung. ...

  10. [转]VB.NET DataTable Select Function

    本文转自:https://www.dotnetperls.com/datatable-select-vbnet VB.NET DataTable Select Function This VB.NET ...