Error while running Jenkins in Docker when I try to build a Job

I am trying to running a Jenkins into a Docker using a Docker compose and when i try to build a job Jenkins shows me the next error:

Salida de consola
Started by user admin
Running as SYSTEM
Building in workspace C:\Users\cpaez\Documents\Automation\MOM\JSFiles
java.nio.file.AccessDeniedException: /C:\Users\cpaez\Documents\Automation\MOM\JSFiles
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
    at java.nio.file.Files.createDirectory(Files.java:674)
    at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
    at java.nio.file.Files.createDirectories(Files.java:767)
    at hudson.FilePath.mkdirs(FilePath.java:3260)
    at hudson.FilePath.access$1300(FilePath.java:211)
    at hudson.FilePath$Mkdirs.invoke(FilePath.java:1251)
    at hudson.FilePath$Mkdirs.invoke(FilePath.java:1247)
    at hudson.FilePath.act(FilePath.java:1075)
    at hudson.FilePath.act(FilePath.java:1058)
    at hudson.FilePath.mkdirs(FilePath.java:1243)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1200)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
    at hudson.model.Run.execute(Run.java:1880)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:428)
Finished: FAILURE

This is Docker compose:

version: '2'
services:
  master:
    build: .
    image: jenkins/jenkins:latest
    restart: unless-stopped
    hostname: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins_home:/var/jenkins_home
 
volumes:
  jenkins_home:

And this is my Docker file:

FROM jenkins/jenkins
 
USER SYSTEM
RUN apt-get -y update && apt-get install -y maven
 
USER jenkins
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt

Anyone can help me? Thank you in advance.

Upvotes: 0

Views: 3172

Answers (1)

Pierre B.
Pierre B.

Reputation: 12943

User jenkins in your container does not have access to folder C:\Users\cpaez\Documents\Automation\MOM\JSFiles on your host. Given your docker-compose.yml it's probably caused by either:

  • This directory does not exists in your container (as per the volume you are mounting), you may try to add
    volumes:
       - jenkins_home:/var/jenkins_home
       - /c/Users/cpaez/Documents/Automation/MOM/JSFiles:/c/Users/cpaez/Documents/Automation/MOM/JSFiles
      
  • Ensure this folder has enough permission for jenkins user in your container to write this directory (your container will run as this user as per the USER jenkins instruction)

Upvotes: 1

Related Questions