Cal conèixer:
Segons la pàgina getting started de Docker-compose disposem d'un exemple amb el framework web Flask:
version: "3" services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
# syntax=docker/dockerfile:1 FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt EXPOSE 5000 COPY . . CMD ["flask", "run"]
import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count)
flask redis
I podríem posar en marxa el nou projecte amb:
$ docker-compose up -d --build
I veure la web amb el browser a:
http://<la_ip_de_la_maquina_docker>:5000
Per saber més pots llegir:
Si poses en marxa l'exemple veuràs que al parar el projecte i tornar-lo a aixecar el comptador de visites es reseteja.
Modifica el docker-compose.yml
per tal que persistim la carpeta adequada del container Redis per fer que el comptador no es reseteji.