Mac下部署Flask项目

5 篇文章 0 订阅
3 篇文章 0 订阅
1、搭建合理的项目架构

防止产生循环导入

# 例如这样,一个最基础的架构示例
# 然后配置日志等等

/
├── application/            # 项目主要逻辑代码保存目录
|    ├── apps               # 存放蓝图
|    ├── settings/          # 项目配置存储目录
│    │   ├ dev.py           # 开发阶段的配置文件
│    │   ├ prop.py          # 生产阶段的配置文件
|    ├──templates           # 模版
│    ├── __init__.py        # 项目初始化文件
├── manage.py               # 项目的终端管理脚本文件
├──logs/                    # 存放日志文件
├──docs/                    # 存放文档文
2、编写dockerfile

a、首先需要准备好项目的依赖文件 requirements.txt

b、编写gunicorn.py

from gevent import monkey
import multiprocessing

monkey.patch_all()

# port
bind = "0.0.0.0:你的端口"

# 启动的进程数
workers = multiprocessing.cpu_count()
worker_class = 'gevent'

c、编写Dockerfile

# 挑选基础镜像
FROM ichpan/ubuntu-python38:v1

ADD ./ /chronus
WORKDIR /chronus

ENV TZ=Asia/Shanghai
RUN DEBIAN_FRONTEND="noninteractive" apt -y install tzdata
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN pip install -r requirements.txt

EXPOSE 5000

# gunicorn启动项目
# gunicorn -c gunicorn.py manage:app
ENTRYPOINT ["gunicorn", "-c", "gunicorn.py", "manage:app"]

d、打包镜像

docker build -t 生成的包名 .

e、启动镜像

docker run -d -p 宿主机端口:容器端口 镜像名

!!!项目搭建完毕

3、项目中有mysql和Redis的时候怎么连接?

使用方案:容器内连接宿主机服务
首先:ifconfig查看本机IP

在这里插入图片描述
a、容器内访问redis服务
​ ​ 在项目中修改redis的port、host为上面的port 和host
​​ ​ 关闭redis的保护模式(即会阻挡外部网址访问), 首先打开redis的配置文件redis.conf, 然后找到protected-mode yes一行将yes改为no,当然如果你本身就是no就不用修改了
​​ ​ 确保redis监听的本地所有地址,而不只是127.0.0.1地址(默认只监听这个地址) . 还是找到redis.conf文件找到绑定地址指令一般为bind 127.0.0.1 :1 , 在这行前将#, 将其注释掉, 那么他会监听本地所有地址.

b、容器内访问mysql

  首先我们先看一下MySQL默认指定的my.cnf路径,使用命令

mysql --help|grep 'my.cnf'

# /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
# 这是四个默认的指定路径,MySQL从第一个路径依次去找my.cnf配置的文件

c、将编写好的mysql配置文件拷贝到 /etc下,然后修改权限

sudo chmod 664 my.cnf

d、修改权限

# 登录到MySQL服务,并连接到mysql库,输入命令 
use mysql

# 将用户名为 root 的host修改为匹配所有的Host
update user set host='%' where user='root'; 

然后就可以访问到本地mysql了。

至此项目搭建完毕!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楼下安同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值