Невозможно создать каталог /home/jenkins/.m2: разрешение запрещено - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть файл Docker с помощью следующей команды mkdir.

RUN mkdir /home/jenkins/.m2

При создании образа Docker я получаю следующую ошибку.

 mkdir: cannot create directory '/home/jenkins/.m2': Permission denied

Ниже мой файл Docker выглядит так:

FROM ubuntu:18.04

ENV REPOSITORY_PATH /home/jenkins/test
ENV JBOSS_HOME /home/jenkins
ENV SEDI_TOOLS_HOME /home/jenkins/install/tools

RUN mkdir /home/jenkins/Application
COPY --chown=jenkins:jenkins  .  /home/jenkins/Application/

RUN chmod ugo+x /home/jenkins/Application/ApplicationParent/build_Application/wildfly.sh

WORKDIR /home/jenkins/Application/ApplicationParent/build_Application
COPY --chown=jenkins:jenkins  ./ApplicationParent/build_Application/.jboss-cli.truststore  /home/jenkins/

WORKDIR /home/jenkins/Application/ApplicationParent/build_Application


USER jenkins

RUN mkdir /home/jenkins/.m2
CMD ["/home/jenkins/maven/apache-maven-3.3.9/bin/mvn","package","-DskipTests"]

Может кто-нибудь помочь мне с этим?

Спасибо.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

В dockerfile создайте новое использование jenkins для решения этой проблемы с разрешениями, как показано ниже:

# Create new jenkins user
RUN adduser --gecos "" --disabled-password --quiet jenkins
RUN echo "jenkins:jenkins" | chpasswd

И измените разрешение каталога / home / jenkins на пользователя jenkins, как показано ниже:

RUN chown jenkins:jenkins /home/jenkins
1 голос
/ 19 сентября 2019

Вы не создаете jenkins пользователя в своем Dockerfile?и /home/jenkins/ создается пользователем root, поэтому в результате пользователю Jenkins будет отказано в разрешении.

Кроме того, будет предлагать официальное изображение Jenkins вместо того, чтобы возиться с легким Ubuntu, основанным на alpine .

Так что лучше создавать на основе официального изображения и расширять изображение в соответствии с вашими потребностями.

FROM jenkins/jenkins:alpine
.
.
.

Альпийское базовое изображение всего лишь 160MB , тогда вам нужно использовать такое тяжелое изображение и главное на вашей стороне?

Кстати, вы можете попробовать ниже, если вы хотите пойти с тяжелыми изображениями.

RUN adduser --disabled-password --gecos '' jenkins
USER jenkins
RUN mkdir /home/jenkins/Application
COPY  .  /home/jenkins/Application/
RUN chmod ugo+x /home/jenkins/Application/ApplicationParent/build_Application/wildfly.sh
WORKDIR /home/jenkins/Application/ApplicationParent/build_Application
COPY  ApplicationParent/build_Application/.jboss-cli.truststore  /home/jenkins/
WORKDIR /home/jenkins/Application/ApplicationParent/build_Application
RUN mkdir /home/jenkins/.m2
...