2017-07-07 163 views
2

我试图在我的macbook中运行Jenkins管道作业。我也有docker实例在本地运行。最初我在运行Jenkins作业时遇到了“docker command not found”错误。我加入了符号链接固定错误“LN -f -s /Applications/Docker.app/Contents/Resources/bin/*在/ usr/local/bin目录权限在尝试连接到Docker守护进程时在Macbook中运行Jenkins管道时被拒绝

我还申请了这两个变化让詹金斯用户具有访问搬运工目录

  1. 搭配chmod -R 777 /Users/myUserName/Library/Containers/com.docker.docker/
  2. CHMOD -R 777 /用户/名为myUsername /库/容器/ COM .docker.helper/

我得到以下错误

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.27/containers/openjdk:8/json : dial unix /var/run/docker.sock: connect: permission denied [Pipeline] sh [test] Running shell script + docker pull openjdk:8 Warning: failed to get default registry endpoint from daemon (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.27/info : dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/ 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.27/images/create?fromImage=openjdk&tag=8 : dial unix /var/run/docker.sock: connect: permission denied [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: script returned exit code 1 Finished: FAILURE

回答

0

这对我有用: docker run --rm -p 8080:8080 -p 4040:4040 -v /var/run/docker.sock:/var/run/docker.sock -v $ PWD/jenkins_home :/ var/jenkins_home logimethods/jenkins

2

这是一个码头权限问题。詹金斯用户添加到搬运工组如下:

usermod -aG docker ${USER}

+1

感谢您的建议,但是我没有mac中的usermod命令 –

+0

这个_usermod_步骤在Docker的[Linux安装后步骤](https://docs.docker .com/engine/installation/linux/linux-postinstall /),因此在Linux情况下它可能仍然相关。 – Wyck

1

有解决这个问题的任何方面,我面对上周,我解决,但与docker-compose这种设置是复制的,来docker,您可以创建一个共享音量从您的主机/var/run/docker.sock中的docker.sock位置指向您的容器/var/run/docker.sock中的docker.sock位置。事情是这样的:

version: '2' 
services: 
    jenkins: 
    build: 
     context: ./jenkins 
    ports: 
     - "8080:8080" 
    expose: 
     - "8080" 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
     - /usr/bin/docker:/usr/bin/docker 
     - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose 

    nginx: 
    build: 
     context: ./nginx 
    container_name: "prueba" 
    links: 
     - jenkins 
    ports: 
     - "80:80" 
    depends_on: 
     - jenkins 

为了作品好,你必须给用户任何权限的socketsudo chown $USER:$USER /var/run/docker.sock和组docker,提到Innocent Anigbo

+0

好的,我将以下更改应用于我的系统:1.创建一个码头组 - “sudo dscl。-create/groups/docker”。 2.将jenkins用户分配给码头组 - “sudo dseditgroup -o编辑 - jenkins -t用户码头工具”。 3.将套接字指定给docker-“sudo chown jenkins:jenkins /var/run/docker.sock”。但仍然看到同样的问题。 –

+0

现在,建立共享卷,使用docker run命令加''''-v /var/run/docker.sock:/ var/run''' –

相关问题