前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker Compose 实战 — 搭建 Python Flask应用

Docker Compose 实战 — 搭建 Python Flask应用

作者头像
李昂君
发布2021-12-24 18:38:08
1.7K0
发布2021-12-24 18:38:08
举报
文章被收录于专栏:李昂君李昂君

阅读量: 45

Docker Compose 安装

Docker Compose 安装

创建 docker-compose.yml 配置文件像这样的

代码语言:javascript
复制
version: "3.9"  # optional since v1.27.0
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

体验

官方参考地址:https://docs.docker.com/compose/gettingstarted/

一、创建目录

代码语言:javascript
复制
 $ mkdir /home/composetest && cd /home/composetest

二、编写体验应用服务

在您的项目目录中创建一个名为 app.py 的文件,并将下面内容粘贴到文件中:

代码语言:javascript
复制
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 的文件,并将其粘贴到:

代码语言:javascript
复制
flask
redis

四、编写DockerFile文件

在此步骤中,您将编写一个构建Docker映像的Dockerfile。该图像包含Python应用程序所需的所有依赖关系,包括Python本身。

在您的项目目录中,创建一个名为Dockerfile的文件并粘贴以下内容:

代码语言:javascript
复制
FROM python:3.7-alpine
ADD . /code
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN /usr/local/bin/python -m pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

五、定义Service到Compose File文件里

在项目目录中创建一个名为 docker-compose.yml 的文件,然后粘贴以下内容:

代码语言:javascript
复制
version: "3.8"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
# 先启动redis 在启动 web
    depends_on:
      - redis
  redis:
    image: "redis:alpine"

该Compose文件定义了两个服务:Web和Redis,实现完整的上线!

六、使用Compose构建和运行您的应用

代码语言:javascript
复制
$ docker-compose up

$ docker-compose up -d 后端启动

1. 运行效果
2. 查看启动的容器信息
3. CURL访问
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-2-26 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker Compose 安装
  • 体验
    • 一、创建目录
      • 二、编写体验应用服务
        • 三、编写导入依赖包
          • 四、编写DockerFile文件
            • 五、定义Service到Compose File文件里
              • 六、使用Compose构建和运行您的应用
                • 1. 运行效果
                • 2. 查看启动的容器信息
                • 3. CURL访问
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档