diff --git a/Dockerfile b/Dockerfile index 6a8b15d..7bfb88e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,8 @@ 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 +ENTRYPOINT [ "/usr/local/bin/start.sh" ] RUN apt-get update && apt-get install -y \ ca-certificates \ @@ -16,5 +17,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..31ec238 --- /dev/null +++ b/start-agent.sh @@ -0,0 +1,22 @@ +if [ $(whoami) != "jenkins" ] || [ $(id -u) == "0" ]; then + echo "This script must be run as jenkins" + 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 +fi +if [ $(id -u jenkins) -ne $UID ]; then + usermod -u $UID jenkins +fi + +# 使用传入的参数列表启动 Jenkins agent +exec /usr/local/bin/jenkins-agent "$@"