04f8c9ca12
* Added Node, Nginx and Redis Project * Added Flask/Redis
2.9 KiB
2.9 KiB
Compose sample application
Python/Flask application using a Redis database
Project structure:
.
├── Dockerfile
├── README.md
├── app.py
├── docker-compose.yml
└── requirements.txt
services:
redis:
image: redislabs/redismod
ports:
- '6379:6379'
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
Deploy with docker-compose
$ docker-compose up -d
[+] Running 24/24
⠿ redis Pulled
...
⠿ 565225d89260 Pull complete
[+] Building 12.7s (10/10) FINISHED
=> [internal] load build definition from Dockerfile ...
[+] Running 3/3
⠿ Network flask-redis_default Created
⠿ Container flask-redis-redis-1 Started
⠿ Container flask-redis-web-1 Started
Expected result
Listing containers must show one container running and the port mapping as below:
$ docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
flask-redis-redis-1 "redis-server --load…" redis running 0.0.0.0:6379->6379/tcp
flask-redis-web-1 "/bin/sh -c 'python …" web running 0.0.0.0:5000->5000/tcp
After the application starts, navigate to http://localhost:5000
in your web browser or run:
$ curl localhost:5000
This webpage has been viewed 2 time(s)
Monitoring Redis keys
Connect to redis database by using redis-cli
command and monitor the keys.
redis-cli -p 6379
127.0.0.1:6379> monitor
OK
1646634062.732496 [0 172.21.0.3:33106] "INCRBY" "hits" "1"
1646634062.735669 [0 172.21.0.3:33106] "GET" "hits"
Stop and remove the containers
$ docker-compose down