This project demonstrates the implementation of a Continuous Integration and Continuous Deployment (CI/CD) pipeline using Jenkins, Docker, GitHub, and Python.
The pipeline automates the process of building, testing, and deploying a containerized Python application whenever code changes are pushed to the GitHub repository.
- Automated build process using Jenkins
- Docker containerization
- GitHub integration
- Continuous Integration workflow
- Automated deployment pipeline
- Reproducible application environment
- Jenkins
- Docker
- Python
- GitHub
- GitHub Actions
.
├── .github/
│ └── workflows/
├── Dockerfile
├── Jenkinsfile
├── app.py
├── requirements.txt
└── README.md
- Developer pushes code to GitHub.
- Jenkins detects repository changes.
- Jenkins pulls the latest source code.
- Application dependencies are installed.
- Docker image is built.
- Container is created and deployed.
- Deployment status is reported.
Developer
|
v
GitHub Repository
|
v
Jenkins Pipeline
|
+----> Build Stage
|
+----> Test Stage
|
+----> Docker Image Build
|
+----> Deployment
|
v
Running Container
Build the Docker image:
docker build -t python-cicd-app .Run the container:
docker run -p 5000:5000 python-cicd-appThe Jenkins pipeline is defined in the Jenkinsfile and automates:
- Source code retrieval
- Build execution
- Docker image creation
- Deployment
Through this project, I gained practical experience in:
- CI/CD concepts
- Jenkins automation
- Docker containerization
- Pipeline orchestration
- DevOps workflow implementation
- GitHub integration
- Add automated testing
- Deploy to AWS EC2
- Push Docker images to Docker Hub
- Add monitoring and logging
- Implement Kubernetes deployment
Gaurav Singh
B.Tech Computer Science Engineering (Cloud Computing & Virtualization)
AWS Cloud Practitioner | DevOps Enthusiast | Full Stack Developer