summaryrefslogtreecommitdiff
path: root/jenkins/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'jenkins/Dockerfile')
-rw-r--r--jenkins/Dockerfile24
1 files changed, 24 insertions, 0 deletions
diff --git a/jenkins/Dockerfile b/jenkins/Dockerfile
new file mode 100644
index 0000000..74ba470
--- /dev/null
+++ b/jenkins/Dockerfile
@@ -0,0 +1,24 @@
+FROM jenkins/jenkins:lts
+
+USER root
+
+# Install Docker CLI so Jenkins can spawn sibling containers via host's docker.sock
+RUN apt-get update && apt-get install -y \
+ ca-certificates \
+ curl \
+ gnupg \
+ && install -m 0755 -d /etc/apt/keyrings \
+ && curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \
+ && chmod a+r /etc/apt/keyrings/docker.asc \
+ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list \
+ && apt-get update \
+ && apt-get install -y docker-ce-cli \
+ && rm -rf /var/lib/apt/lists/*
+
+# Add jenkins user to docker group so it can use docker.sock
+RUN groupadd -f docker && usermod -aG docker jenkins
+
+USER jenkins
+
+# Pre-install Docker Pipeline plugin (enables agent { docker { image '...' } } in Jenkinsfiles)
+RUN jenkins-plugin-cli --plugins "docker-workflow"