目录

​开发程序​

​创建文件夹​

​创建文件app.py​

​创建文件requirements.txt​

​创建Dockfile​

​ 最终文件列表​

​创建Compose services ​

​运行compose ​

​效果​


开发程序

创建文件夹

$ mkdir composetest
$ cd composetest


创建文件app.py

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)


创建文件requirements.txt

flask
redis


创建Dockfile

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
COPY . .
CMD ["flask", "run"]

 最终文件列表

docker系列:docker-compose 入门demo_flask


创建Compose services 

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"


运行compose 

docker-compose up

 docker系列:docker-compose 入门demo_redis_02

docker系列:docker-compose 入门demo_flask_03


效果:

浏览器输入:http://ip:5000/

docker系列:docker-compose 入门demo_flask_04

 后续再次启动,redis会继续累加

docker系列:docker-compose 入门demo_flask_05 

docker系列:docker-compose 入门demo_创建文件_06