【问题标题】:Error while running Jenkins in Docker when I try to build a Job当我尝试构建作业时在 Docker 中运行 Jenkins 时出错
【发布时间】:2020-10-26 05:53:06
【问题描述】:

我正在尝试使用 Docker compose 将 Jenkins 运行到 Docker 中,当我尝试构建作业时,Jenkins 向我显示了下一个错误:

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

这是 Docker 撰写:

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:

这是我的 Docker 文件:

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

有人可以帮助我吗?提前谢谢你。

【问题讨论】:

  • 您的用户在这里/C:\......\MOM\JSFiles 的权限似乎不足,请检查文件夹权限。从您的日志中 > AccessDeniedException
  • 请添加您的 Jenkins 流水线脚本 (Jenkinsfile) 或您的作业配置以及执行的确切命令。看起来您的构建作业正在尝试写入您没有写入权限的位置(在您的容器内)。

标签: docker jenkins


【解决方案1】:

您容器中的用户jenkins 无权访问您主机上的文件夹C:\Users\cpaez\Documents\Automation\MOM\JSFiles。鉴于您的docker-compose.yml,这可能是由以下任一原因引起的:

  • 您的容器中不存在此目录(根据您要挂载的卷),您可以尝试添加
    volumes:
       - jenkins_home:/var/jenkins_home
       - /c/Users/cpaez/Documents/Automation/MOM/JSFiles:/c/Users/cpaez/Documents/Automation/MOM/JSFiles
      
  • 确保该文件夹有足够的权限让您的容器中的jenkins 用户写入该目录(您的容器将按照USER jenkins 指令以该用户身份运行)

【讨论】:

  • 嗨,我改变了我的 docker compose:volumes: - jenkins_home:/var/jenkins_home - C:\Users\cpaez\Documents\Automation\MOM\JSFiles:C:\Users\cpaez\Documents\ Automation\MOM\JSFiles 这是我现在执行时显示的错误: docker-compose up -d Creating mom_master_1 ... 错误错误:对于 mom_master_1 无法为服务主机创建容器:挂载被拒绝:源路径“ \\Users\\cpaez\\Documents\\Automation\\MOM\\JSFiles:C:\\Users\\cpaez\\Documents\\Automation\\MOM\\JSFiles:rw" 冒号太多 你能帮帮我吗?提前谢谢你。
  • 在 Windows 上为 Compose 指定路径与在普通 Linux 上有点不同(需要使用 / 而不是 `` ),我更新了我的答案
  • 您可以查看stackoverflow.com/questions/41334021/… 以在 Windows 上设置 Docker Compose 卷
  • 嗨,谢谢,现在我可以访问,但出现此错误:由用户 Carolina Running as SYSTEM Building in workspace C:\Users\cpaez\Documents\Automation\MOM\JSFiles [JSFiles] $ 启动/bin/sh -xe /tmp/jenkins7772105530923733597.sh + ./run.sh /tmp/jenkins7772105530923733597.sh: 2: /tmp/jenkins7772105530923733597.sh: ./run.sh: 未找到构建步骤“执行外壳”标记构建作为失败完成:失败
  • 太好了,很乐意提供帮助 :) 您最初的问题似乎已解决,这似乎与您的第一个问题无关,您似乎在构建期间尝试使用 run.sh 脚本,但文件不是成立。也许问另一个问题或使用您的 Jenkins 构建步骤编辑这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多