This project demonstrates a complete CI/CD pipeline using Docker, Docker Compose, and GitHub Actions with a self-hosted runner.
The application is a simple Flask API containerized with Docker and automatically deployed on every push using GitHub Actions.
- Python (Flask)
- Docker
- Docker Compose
- GitHub Actions (CI/CD)
- Self-hosted runner
my-devops-app/
│
├── app/
│ └── app.py
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── .github/workflows/ci.yml
-
Push code to
main -
GitHub Actions triggers pipeline
-
Self-hosted runner executes:
docker compose downdocker compose up -d --build
-
Application is updated automatically
docker compose up -d --buildThen open:
http://localhost:5000
- Automated deployment on push
- Containerized application
- Service orchestration with Docker Compose
- Self-hosted CI runner
This project demonstrates practical DevOps skills:
- CI/CD pipeline design
- Containerization
- Infrastructure automation