diff options
Diffstat (limited to 'composer')
-rw-r--r-- | composer/app/Dockerfile | 5 | ||||
-rw-r--r-- | composer/app/app.py | 29 | ||||
-rw-r--r-- | composer/app/docker-compose.yml | 8 | ||||
-rw-r--r-- | composer/app/requirements.txt | 2 |
4 files changed, 44 insertions, 0 deletions
diff --git a/composer/app/Dockerfile b/composer/app/Dockerfile new file mode 100644 index 0000000..8e67d74 --- /dev/null +++ b/composer/app/Dockerfile @@ -0,0 +1,5 @@ +FROM python:3.4-alpine +ADD . /code +WORKDIR /code +RUN pip install -r requirements.txt +CMD ["python", "app.py"] diff --git a/composer/app/app.py b/composer/app/app.py new file mode 100644 index 0000000..9bf5d90 --- /dev/null +++ b/composer/app/app.py @@ -0,0 +1,29 @@ +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 from this site! I have been seen {} times.\n'.format(count) + +if __name__ == "__main__": + app.run(host="0.0.0.0", debug=True) diff --git a/composer/app/docker-compose.yml b/composer/app/docker-compose.yml new file mode 100644 index 0000000..899cf44 --- /dev/null +++ b/composer/app/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' +services: + web: + build: . + ports: + - "5000:5000" + redis: + image: "redis:alpine" diff --git a/composer/app/requirements.txt b/composer/app/requirements.txt new file mode 100644 index 0000000..1a5dc97 --- /dev/null +++ b/composer/app/requirements.txt @@ -0,0 +1,2 @@ +flask +redis |