Source Code:- https://github.com/AbhishekJha29/CI-CD-Pipeline-with-Jenkins-Docker-Kubernetes
I built an end-to-end CI/CD pipeline to automate the full journey from code push to a running application in Kubernetes, handling the real-world gap between "code is written" and "code is actually deployed." Manual deployment is error-prone and slow, so this project focuses on removing every manual step between a developer's commit and a live, updated application in the cluster.
The system connects a GitHub repository to a self-hosted Jenkins server via webhooks, so every push automatically triggers the pipeline. Jenkins installs dependencies, runs automated tests, builds a Docker image tagged with the build number, and pushes it to Docker Hub. Since Jenkins runs in its own container without Docker or kubectl installed by default, I built a custom Jenkins image using the Docker-outside-of-Docker pattern, giving Jenkins controlled access to the host's Docker daemon so it can build and manage images as part of the pipeline itself.
To test it properly, I deployed the application to a local Kubernetes cluster (Minikube), verified it was reachable, then made deliberate code changes and pushed them to simulate real development cycles. The final pipeline stage runs kubectl to update the live deployment with the newly built image, and I validated each rollout by watching the pods terminate and restart with the new version, confirming the deployment actually updated rather than just appearing to.
To make it more production-oriented, I containerized the whole pipeline environment rather than relying on locally installed tools, and worked through the networking and credential-handling issues that come with running Jenkins, Docker, and Kubernetes as separate, isolated environments — including cross-container networking, portable kubeconfig generation, and secure credential storage in Jenkins rather than hardcoding them. This project helped me understand CI/CD internals, container orchestration, webhook-driven automation, and how real deployment pipelines are designed beyond just "docker build and run."





