From bac1f1c73db9c55a18b41b76922572fd2620f3d5 Mon Sep 17 00:00:00 2001 From: Andrew D. France Date: Tue, 22 Jul 2025 21:00:10 -0500 Subject: Fixing Jenkins Setup: Attempt2 --- Dockerfile.jenkins | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'Dockerfile.jenkins') diff --git a/Dockerfile.jenkins b/Dockerfile.jenkins index 874941a..23a95f1 100644 --- a/Dockerfile.jenkins +++ b/Dockerfile.jenkins @@ -2,10 +2,12 @@ # Use the official Jenkins image as a base FROM jenkins/jenkins:lts-jdk17 -# Pass the Docker group ID from the host as a build argument +# Pass Host User, Group, and Docker Group IDs as build arguments +ARG UID +ARG GID ARG DOCKER_GID -# Switch to root user to install dependencies +# Switch to root user to install dependencies and manage users USER root # Install Docker CLI so Jenkins can interact with the host's Docker daemon @@ -18,12 +20,21 @@ RUN echo "deb [arch=$(dpkg --print-architecture) \ $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli -# Create a 'docker' group with the host's GID to match permissions -# This is the key step to prevent the container from exiting -RUN if [ -n "$DOCKER_GID" ]; then groupadd -g $DOCKER_GID docker; else groupadd -g 999 docker; fi +# Create a docker group with the host's GID to match permissions +# and add the jenkins user to it. +RUN if [ -n "$DOCKER_GID" ]; then \ + groupadd -g $DOCKER_GID docker && \ + usermod -aG docker jenkins; \ + fi -# Add the 'jenkins' user to the docker group -RUN usermod -aG docker jenkins +# Change the jenkins user and group to match the host. +# This should ensure file permissions for the jenkins_home volume are correct. +RUN if [ -n "$GID" ] && [ "$(getent group jenkins | cut -d: -f3)" != "$GID" ]; then \ + groupmod -g $GID jenkins; \ + fi +RUN if [ -n "$UID" ] && [ "$(id -u jenkins)" != "$UID" ]; then \ + usermod -u $UID jenkins; \ + fi -# Switch back to the jenkins user +# Switch to the newly configured jenkins user USER jenkins -- cgit v1.2.3-59-g8ed1b