zoukankan      html  css  js  c++  java
  • MacOS~jenkins里解决docker执行权限问题

    一 全局配置项设置

    • 需要添加全局变量项,例如名称docker,路径/usr/local
    • 添加一个jenkinsfile文件,用于运行docker命令
    pipeline {
     agent any
     tools{
        gradle "gradle"
     }
    
    stages {
        stage('init') {
               steps {
                script{
                  def dockerPath = tool 'docker' //全局配置里的docker
                  env.PATH = "${dockerPath}/bin:${env.PATH}" //添加了系统环境变量上
                }
               }
        }
    
        stage('Build') {
            steps {
                script{
                  sh "docker --version"
                }
            }
        }
      }
    }
    

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

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

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

    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'
    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组

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

    修改jenkins用户的拥有者

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

    大功告成

    [Pipeline] script
    [Pipeline] {
    [Pipeline] sh
    + docker run alpine:3.6 /bin/echo hello
    hello
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    Finished: SUCCESS
    
  • 相关阅读:
    QOMO Linux 4.0 正式版发布
    LinkChecker 8.1 发布,网页链接检查
    pgBadger 2.1 发布,PG 日志分析
    Aletheia 0.1.1 发布,HTTP 调试工具
    Teiid 8.2 Beta1 发布,数据虚拟化系统
    zLogFabric 2.2 发布,集中式日志存储系统
    开源电子工作套件 Arduino Start Kit 登场
    Piwik 1.9 发布,网站访问统计系统
    Ruby 1.9.3p286 发布,安全修复版本
    toBraille 1.1.2 发布,Java 盲文库
  • 原文地址:https://www.cnblogs.com/lori/p/11454533.html
Copyright © 2011-2022 走看看