#jenkins #dockerfile #jenkins-pipeline #jenkins-slave
#дженкинс #dockerfile #дженкинс-конвейер #jenkins-подчиненный
Вопрос:
Я определил узел в конфигурации jenkins cloud со следующим файлом docker, все в порядке, за исключением случаев, когда я запускаю задание, которое выполняется от имени пользователя root.
FROM jenkins/inbound-agent:alpine as jnlp
FROM maven:3.6.3-jdk-11
ARG DOCKER_VERSION=18.03.0-ce
ARG DOCKER_COMPOSE_VERSION=1.21.0
ARG USER=jenkins
USER root
COPY --from=jnlp /usr/local/bin/jenkins-agent /usr/local/bin/jenkins-agent
COPY --from=jnlp /usr/share/jenkins/agent.jar /usr/share/jenkins/agent.jar
RUN apt-get install ca-certificates wget -y
amp;amp; rm -r /var/lib/apt/lists /var/cache/apt/archives
amp;amp; wget https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/linux/amd64/kubectl -q -O /usr/local/bin/kubectl
amp;amp; chmod a x /usr/local/bin/kubectl
RUN curl -fsSL https://download.docker.com/linux/static/stable/`uname -m`/docker-$DOCKER_VERSION.tgz | tar --strip-components=1 -xz -C /usr/local/bin docker/docker
RUN curl -fsSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose amp;amp; chmod x /usr/local/bin/docker-compose
RUN touch /debug-flag
RUN useradd jenkins
USER jenkins
ENTRYPOINT ["/usr/local/bin/jenkins-agent"]
При запуске моей работы пользователь является root. И мне нужно работать с пользователем, не являющимся пользователем root, для некоторых заданий, моя общая библиотека на jenkins работает хорошо.
Единственная проблема, с которой я сталкиваюсь, — это когда я запускаю некоторый тест в некоторых проектах со встроенной базой данных, поскольку он должен выполняться у пользователя, не являющегося root.
Ответ №1:
Проверьте свой шаблон Pod и шаблон контейнера, чтобы узнать, установлены ли «RunAsUser» и «runAsGroup». Вы можете установить значение 1000 в качестве идентификатора пользователя и идентификатора пользователя jenkins по умолчанию.