From e5cf2f87f95f0cdd8d08158e1be70c80f158da60 Mon Sep 17 00:00:00 2001 From: bvn13 Date: Mon, 25 Dec 2023 16:28:29 +0300 Subject: [PATCH] 2 --- build/agent/Dockerfile | 29 +++++++++++++++++++++++++++++ build/controller/Dockerfile | 26 ++++++++++++++++++++++++++ docker-compose.yaml | 28 ++++++++++++++++++++++++++++ rebuild.sh | 4 ++++ 4 files changed, 87 insertions(+) create mode 100644 build/agent/Dockerfile create mode 100644 build/controller/Dockerfile create mode 100644 docker-compose.yaml create mode 100755 rebuild.sh diff --git a/build/agent/Dockerfile b/build/agent/Dockerfile new file mode 100644 index 0000000..ba83291 --- /dev/null +++ b/build/agent/Dockerfile @@ -0,0 +1,29 @@ +FROM jenkins/ssh-agent:latest-jdk17 + +ARG DOCKER_COMPOSE_VERSION=2.15.0 + +USER root +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get -y install apt-transport-https \ + ca-certificates \ + curl \ + gnupg2 \ + git \ + software-properties-common && \ + curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \ + add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \ + $(lsb_release -cs) \ + stable" && \ + apt-get update && \ + apt-get -y install docker-ce && \ + apt-get clean autoclean && apt-get autoremove && rm -rf /var/lib/{apt,dpkg,cache,log}/ + +RUN curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose + +#RUN usermod -aG docker jenkins && gpasswd -a jenkins docker + +USER jenkins + +ENTRYPOINT ["setup-sshd"] diff --git a/build/controller/Dockerfile b/build/controller/Dockerfile new file mode 100644 index 0000000..b293d00 --- /dev/null +++ b/build/controller/Dockerfile @@ -0,0 +1,26 @@ +FROM jenkins/jenkins:lts + +ARG DOCKER_COMPOSE_VERSION=2.401.3 + +USER root + +# Install the latest Docker CE binaries and add user `jenkins` to the docker group +RUN apt-get update +RUN apt-get -y --no-install-recommends install apt-transport-https \ + apt-utils ca-certificates curl gnupg2 software-properties-common && \ + curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \ + add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \ + $(lsb_release -cs) \ + stable" + +RUN apt-get update && apt-get install -y docker-ce-cli docker-ce && \ + apt-get clean && \ + usermod -aG docker jenkins + +RUN curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \ + -o /usr/local/bin/docker-compose && \ + chmod u+x /usr/local/bin/docker-compose + +USER jenkins +RUN jenkins-plugin-cli --plugins "docker-workflow:1.29 ansicolor" diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..880af35 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,28 @@ +version: '3.8' + +networks: + jenkins: + external: true + +services: + + jenkins: + build: ./build/controller/ + networks: + - jenkins + privileged: true + user: root + ports: + - 9000:8080 + - 50000:50000 + container_name: jenkins + volumes: + - ./jenkins_home:/var/jenkins_home + - /var/run/docker.sock:/var/run/docker.sock + extra_hosts: + - "host.docker.internal:host-gateway" + environment: + - DOCKER_HOST=host-gateway + restart: always + + diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 0000000..7f9534b --- /dev/null +++ b/rebuild.sh @@ -0,0 +1,4 @@ +#!/bin/env bash +docker-compose down +docker-compose up -d --build --force-recreate +