@@ -45,15 +45,74 @@ Contributors should search for these comments and fix the issues.
4545
4646## 🛠 Setup Instructions
4747
48+ ### Local Setup
49+
4850Clone the repo and install dependencies:
4951
5052``` bash
5153git clone https://github.com/< your-username> /etl-problems.git
5254cd etl-problems
53- pip install -r requirements.txt
54- python main.py
55+ pip install -r app/requirements.txt
56+ python -m app.main
57+ ```
58+
59+ ### Running with Docker
60+
61+ Containerize the ETL pipeline for a consistent, isolated development environment across all machines.
62+
63+ ** Prerequisites:** Docker and Docker Compose must be installed on your system.
64+
65+ ** Quick Start:**
66+
67+ 1 . Clone the repository:
68+ ``` bash
69+ git clone https://github.com/< your-username> /etl-problems.git
70+ cd etl-problems
71+ ```
72+
73+ 2 . Run the pipeline in a container:
74+ ``` bash
75+ docker-compose up
76+ ```
77+
78+ This command will:
79+ - Build the Docker image from the provided ` Dockerfile `
80+ - Start the ETL pipeline in an isolated container
81+ - Mount your local code directory as a volume, so changes you make to the code are immediately reflected in the container
82+
83+ ** Rebuilding the Image:**
84+
85+ If you update dependencies in ` requirements.txt ` , rebuild the image:
86+ ``` bash
87+ docker-compose up --build
88+ ```
89+
90+ ** Interactive Mode:**
91+
92+ To run commands interactively inside the container:
93+ ``` bash
94+ docker-compose run etl bash
5595```
5696
97+ Then inside the container, you can run:
98+ ``` bash
99+ python -m app.main
100+ python -m pytest tests/
101+ ```
102+
103+ ** Stopping the Container:**
104+
105+ ``` bash
106+ docker-compose down
107+ ```
108+
109+ ** Benefits:**
110+ - 🎯 ** Consistency** : Same environment for all developers (Python 3.10, all dependencies)
111+ - 📦 ** Isolation** : No conflicts with local Python installations
112+ - 🚀 ** Reproducibility** : Works the same on Windows, macOS, and Linux
113+ - 🔧 ** Hot Reload** : Code changes are immediately reflected without rebuilding
114+ - 🧪 ** Testing** : Run tests in an isolated environment
115+
57116---
58117
59118## 🧪 Testing
0 commit comments