diff --git a/labs/jenkins-setup/README.md b/labs/jenkins-setup/README.md new file mode 100644 index 0000000..2d82157 --- /dev/null +++ b/labs/jenkins-setup/README.md @@ -0,0 +1,33 @@ +# Jenkins setup lab + +## 1. Labs stack + +- 1 Jenkins controller +- 1 Jenkins agent + +## 2. Setup + +### Prerequisites + +- Docker + Docker Compose + +### Build and run the containers + +```bash +cd labs/jenkins-setup +docker-compose up --build -d + +# To stop and remove contaienr, run: +docker compose down +``` + +## 3. Explore the Jenkins + +- Visit http://localhost:8080/ to explore and use Jenkins +- Get the init password to login (Login admin/initialAdminPassword): + +```bash +docker exec jenkins-controller cat /var/jenkins_home/secrets/initialAdminPassword + +# 1d86cf0e5fe14608970274adb54ec3ac +``` diff --git a/labs/jenkins-setup/docker-compose.yaml b/labs/jenkins-setup/docker-compose.yaml new file mode 100644 index 0000000..75866e6 --- /dev/null +++ b/labs/jenkins-setup/docker-compose.yaml @@ -0,0 +1,21 @@ +version: '3.8' + +services: + jenkins-controller: + build: + context: ../../pools/jenkins/jenkins-controller + container_name: jenkins-controller + ports: + - '8080:8080' + - '50000:50000' + volumes: + - jenkins_data:/var/jenkins_home + networks: + - jenkins-network + +volumes: + jenkins_data: + +networks: + jenkins-network: + driver: bridge diff --git a/pools/jenkins/jenkins-controller/Dockerfile b/pools/jenkins/jenkins-controller/Dockerfile new file mode 100644 index 0000000..94d6f83 --- /dev/null +++ b/pools/jenkins/jenkins-controller/Dockerfile @@ -0,0 +1,5 @@ +FROM jenkins/jenkins:lts + +# Install plugins +COPY plugins.txt /usr/share/jenkins/ref/plugins.txt +RUN jenkins-plugin-cli --plugin-file /usr/share/jenkins/ref/plugins.txt diff --git a/pools/jenkins/jenkins-controller/plugins.txt b/pools/jenkins/jenkins-controller/plugins.txt new file mode 100644 index 0000000..cf7f3ea --- /dev/null +++ b/pools/jenkins/jenkins-controller/plugins.txt @@ -0,0 +1,2 @@ +git:5.2.2 +blueocean:1.27.14