2017-11-24 7 views
1

에 연결할 수 없습니다 내가 항만 노동자에 젠킨스와 안녕하세요 세계 받는다는 자바 응용 프로그램을 구축하는이 튜토리얼을 다음입니다 : https://jenkins.io/doc/tutorials/building-a-java-app-with-maven/#fork-and-clone-the-sample-repository-on-github젠킨스 파이프 라인 - 도커 데몬

이 내 응용 프로그램입니다 (다만 포크 자습서를 형성) : simple-java-maven-app

Pipeline의 옵션 (저장소 URL)에서 로컬 repo (또는 호스트 repo)가 아닌 원격 repo (Github)를 사용했을 때 약간의 차이가 있습니다. 나는 Jenkinsfile을 repo 한 다음 Pipeline으로 hello-world 앱을 만들 것을 요구했다.

// Jenkinsfile for Pipeline 
pipeline { 
    agent { 
     docker { 
      image 'maven:3-alpine' 
      args '-v /root/.m2:/root/.m2' 
     } 
    } 
    stages { 
     stage('Build') { 
      steps { 
       sh 'mvn -B -DskipTests clean package' 
      } 
     } 
    } 
} 

나는 아래이 error을 얻고 그것을 위해 어떤 해결책을 찾을 수 없습니다. 저는 Windows 10을 사용하고 있습니다.

docker pull maven:3-alpine 
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/ 
Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

모두에게 감사드립니다.

답변

2

DockDock (DockD)에서 Docker를 사용하고 있는데 이는 권장되는 CI 방법이 아닙니다. 당신은 같은 젠킨스 컨테이너에 볼륨로 호스트의 도커 데몬 소켓를 장착해야합니다

docker container run -v /var/run/docker.sock:/var/run/docker.sock ...

그래서 당신은 오히려 젠킨스 컨테이너보다 이미지를 호스트 컴퓨터에 & 컨테이너를 작업 할 수 있습니다. 자세한 내용은 Click Here을 참조하십시오.

+0

"권장되는 CI 접근 방식이 아닙니다."란 무엇을 의미합니까? DinD는 기본적으로 이러한 목적으로 설계되었습니다. 포함 된 호스트의 소켓을 내부 도커에 노출 시키면 도커 컨테이너가 기본적으로 호스트의 도커를 대신 할 수 있습니다. 블로거 문제는 동일한 호스트에서 여러 도커 CI 빌드를 병렬로 실행하는 경우에만 관련이 있습니다. – Otheus