Skip to content

End-to-end CI/CD pipeline for a Flask web app deployed on AWS. Uses Docker for containerization and automates build, test, and deployment with AWS CodePipeline, CodeBuild, and Elastic Beanstalk. Docker images are stored in Amazon ECR, enabling a fully repeatable, production-ready deployment workflow.

Notifications You must be signed in to change notification settings

pmoise1981/aws-flask-devops

Repository files navigation

# 🚀 Flask DevOps Pipeline on AWS

This project demonstrates a complete CI/CD pipeline using AWS Developer Tools and Docker to deploy a Flask app to Elastic Beanstalk. It includes:

- Dockerized Flask application
- CI/CD using AWS CodePipeline and CodeBuild
- Deployment to Elastic Beanstalk
- Image storage in Amazon ECR

---

## 🖼️ Screenshots

### ✅ Deployed Flask App (Elastic Beanstalk)
The Flask app is live and reachable at the Elastic Beanstalk domain:
![Live App](screenshots/homepage.png)

---

### ⟳ CodePipeline Execution
Automatic build, test, and deployment triggered by GitHub commits:
![CodePipeline Success](screenshots/codepipeline-success.png)

---

### 🐳 Docker Image in Amazon ECR
Successfully built and pushed the image to AWS ECR:
![ECR Push](screenshots/ecr-push.png)

---

### ☁️ Elastic Beanstalk Deployment
Image from ECR deployed to a running EC2 instance:
![Elastic Beanstalk Success](screenshots/beanstalk-success.png)

---

## 📆 Tech Stack

- **Flask** (Python micro web framework)
- **Docker** (Containerization)
- **AWS ECR** (Docker image registry)
- **AWS CodePipeline + CodeBuild** (CI/CD)
- **AWS Elastic Beanstalk** (Application hosting)

---

## ⚙️ Deployment Workflow

1. Code pushed to GitHub
2. CodePipeline triggers build in CodeBuild
3. Docker image built and pushed to ECR
4. New app version deployed to Elastic Beanstalk

---

## 📁 Folder Structure

```
.
├── app.py
├── Dockerfile
├── Dockerrun.aws.json
├── requirements.txt
├── screenshots/
│   ├── homepage.png
│   ├── codepipeline-success.png
│   ├── ecr-push.png
│   └── beanstalk-success.png
```

---

## ✅ Result

A live, containerized Flask app running in production via a fully automated AWS CI/CD pipeline. Clean. Repeatable. Cloud-native.

About

End-to-end CI/CD pipeline for a Flask web app deployed on AWS. Uses Docker for containerization and automates build, test, and deployment with AWS CodePipeline, CodeBuild, and Elastic Beanstalk. Docker images are stored in Amazon ECR, enabling a fully repeatable, production-ready deployment workflow.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published