首页 > 其他 > 详细

docker部署flask项目

时间:2020-03-31 14:22:12      阅读:186      评论:0      收藏:0      [点我收藏+]

一、概述

应用案例:

18w+淘宝cid mapping  部署线上对外提供接口

使用两个容器:数据库(mongodb),框架(flask)

二、操作流程

1、拉取Mongo镜像并启动一个容器命名为mongo,端口映射 容器的27017端口映射到宿主机的27018端口(访问宿主机的27018端口就可以访问到容器的27017端口的服务)

docker pull mongo
docker run -id -p 27018:27017 --name=mongo mongo bash    启动容器

2、拉去centos镜像,安装依赖环境

通过参数 --link 来使两个容器通信

docker pull centos:7
docker run -it --name=taobaoweb -p 5010:5010 --link mongo:mongo centos:7                            启动并进入容器
yum install -y vim && yum install -y lrzsz && yum install -y unzip && yum install python3

pip3 install -i https://pypi.doubanio.com/simple pymongo
pip3 install -i https://pypi.doubanio.com/simple flask
pip3 install -i https://pypi.doubanio.com/simple gunicorn

3、本地代码上传到docker容器内,并解压

unzip taobao.zip

技术分享图片

4、进入淘宝目录配置settings文件

技术分享图片

settings.py

from pymongo import MongoClient

my_client = MongoClient(host="mongo",port=27017)
mdb = my_client["dianshang"]

host名为 

技术分享图片

 项目文件baotaoserver.py

#-*-coding:utf-8-*-
from settings import mdb
from flask import Flask,jsonify
app = Flask(__name__)

@app.route("/search/<int:num>", methods=["GET", "POST"],)
def search_cid_mapping(num):
    try:
        data = list(mdb.taobaomapping.find({"cid":num}))[0]
        data.pop("_id")
        return jsonify(data)
    except Exception as e:
        return jsonify({})


@app.route("/search/limit/<int:num>", methods=["GET", "POST"],)
def search_cid_limit(num):
    try:
        data = list(mdb.taobaomapping.find({}).limit(num))
        [i.pop("_id") for i in data]
        return jsonify(data)
    except Exception as e:
        return jsonify({})

if __name__ == __main__:
    print(mdb.taobaomapping.find({"cid":40}))
    app.config["JSON_AS_ASCII"] = False
    app.run("0.0.0.0",5010)

使用gunicorn启动flask项目

gunicorn -w 4 -D -b 0.0.0.0:5010 taobaoserver:app         启动flask服务      taobaoserver为项目文件名

mongo容器设置

远程连接的开启
在 mongodb 的容器当中

#更新源
apt-get update
# 安装 vim
apt-get install vim
# 修改 mongo 配置文件
vim /etc/mongod.conf.orig

将其中的


bindIp: 127.0.0.1
注释掉# bindIp: 127.0.0.1
或者改成bindIp: 0.0.0.0
即可开启远程连接

 

docker部署flask项目

原文:https://www.cnblogs.com/songzhixue/p/12604310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!