2017-07-07 165 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''' –

相關問題