diff --git a/Dockerfile b/Dockerfile index 6a8b15d..d68ad35 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,9 @@ FROM jenkins/inbound-agent:${BASE_TAG} USER root -RUN groupadd -g 987 docker && usermod -aG docker jenkins +COPY start-agent.sh /usr/local/bin/start.sh +RUN chmod 755 /usr/local/bin/start.sh +ENTRYPOINT [ "/bin/bash", "/usr/local/bin/start.sh" ] RUN apt-get update && apt-get install -y \ ca-certificates \ @@ -16,5 +18,4 @@ RUN apt-get update && apt-get install -y \ apt-get update && apt-get install -y docker-ce-cli docker-buildx-plugin docker-compose-plugin && \ apt-get clean && rm -rf /var/lib/apt/lists/* -USER jenkins - +ENV DOCKER_HOST=unix:///var/run/docker.sock diff --git a/start-agent.sh b/start-agent.sh new file mode 100644 index 0000000..07d3f05 --- /dev/null +++ b/start-agent.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +if [ $(id -u) != "0" ]; then + echo "This script must be run as root" + exit 1 +fi + +if [ -z "$GID" ]; then + echo "GID is not set" + exit 1 +fi +if [ -z "$UID" ]; then + echo "UID is not set" + exit 1 +fi +if ! grep -q docker /etc/group; then + groupadd -g $GID docker && usermod -aG docker jenkins + echo "Added docker group" +fi +if [ $(id -u jenkins) -ne $UID ]; then + usermod -u $UID jenkins + echo "Changed jenkins UID" +fi + +echo "Starting agent..." +runuser -u jenkins -m -g docker -- /bin/bash /usr/local/bin/jenkins-agent $@