user3455402
user3455402

Reputation: 119

Jenkins + Docker + Windows

I am currently running Jenkins 2.89.3 with Docker 17.12.0-ce-win47 on Windows 10, with Linux containers.

I am trying to run the following Jenkins file

pipeline {
    agent { docker 'maven:3.3.3' }
    stages {
        stage('build') {
            steps {
                sh 'mvn --version'
            }
        }
    }
}

However, I'm getting the following error in Jenkins:

java.io.IOException: Failed to run image 'maven:3.3.3'. Error: docker:
Error response from daemon: the working directory
'C:\Users\c.c\.jenkins\workspace\Neo4jTime_master-R4QSBCTASBURK2MQKHAPXGLIBNT65CJORPZCYLPCGRG75IGOQKTA'
is invalid, it needs to be an absolute path.

What should I do?

Upvotes: 8

Views: 5752

Answers (2)

Auriuki
Auriuki

Reputation: 109

I had a similar problem when I was trying to install Jenkins on Windows. Example solution it to Run Jenkins in Docker with Docker inside.

I prepared small README how to set up Jenkins in Docker with Docker inside and with an example Jenkinsfile https://github.com/auriuki/jenkins-docker

In short: run Jenkins in Docker like it is in the official Jenkins documentation.

docker run ^
  -u root ^
  --rm ^
  -d ^
  -p 8080:8080 ^
  -p 50000:50000 ^
  -v "E:/Docker/Jenkins":/var/jenkins_home ^
  -v /var/run/docker.sock:/var/run/docker.sock ^
  --name jenkins ^
  jenkinsci/blueocean

where E:/Docker/Jenkins is a created directory for jenkins configuration, workspec, etc. - to avoid loosing data after container is removed.

Upvotes: 6

yorammi
yorammi

Reputation: 6458

This will work only if Jenkins will be installed on a Linux machine. It is caused because Docker plugin mounts the workspace into the container (using the -v argument) and a Windows-path doesn't exists in Linux.

Upvotes: 1

Related Questions