EXP2:
1)
* docker-compose.yml:
services:
  web:
    build: ./web
    depends_on:
      - redis
    environment:
      - REDIS_HOST=redis
    expose:
      - "5000"


  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
---------------------------------
/web
* app.py:
import os
import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(
    host=os.getenv("REDIS_HOST", "redis"),
    port=int(os.getenv("REDIS_PORT", "6379")),
)

@app.route("/")
def hello():
    count = cache.incr("hits")
    return f"Hello from Docker! I have been seen {count} time(s).\n"

----------------------------------------
* requirements.txt:
flask
redis
 -------------------------------
* Dockerfile:
FROM python:3.12-alpine

WORKDIR /code

RUN apk add --no-cache gcc musl-dev linux-headers

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["flask", "run", "--host=0.0.0.0"]
----------------------------------------
2)
docker compose up --build
docker compose logs


3)
docker compose up -d --scale web=2

4)
docker compose down
