简介:

建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新…………

所以我从构建,就考虑部署的问题,使用docker部署。

程序都打包进docker,本博客有相关文章。

pycharn直接创建一个空白的flask项目就好了

1.安装docker并自动启动

本博客有相关文章。

2.创建生成镜像的目录

在服务器上创建如下:

/storage/temp/
├── app
│   ├── app      ,这个目录里面就是flask源码,一个文件,两个目录
│   │   ├── main.py
│   │   ├── static
│   │   └── templates
│   └── uwsgi.ini   这个是uwsgi的配置
├── dockerfile   这个是dockerfile,生成镜像的文件
└── rebuild.sh   为了停止容器,删除容器,启动容器写的脚本。

3.配置syncthing同步

具体看syncthing同步教程。

4.配置uwsgi.ini

[uwsgi]
module = app.main
callable = app
就这三行,就是指示flask入口文件,

5.编写dockerfile

比这个镜像作者多了一个设置中国时区,中国源,别的没啥。

FROM tiangolo/uwsgi-nginx-flask:python3.6-alpine3.7
MAINTAINER jackadam<jackadam@sina.com>
#变更源
# 安装包源切到中科大, 国内访问加速
RUN { \
echo 'http://mirrors.ustc.edu.cn/alpine/v3.7/main'; \
echo 'http://mirrors.ustc.edu.cn/alpine/v3.7/community'; \
echo 'http://mirrors.ustc.edu.cn/alpine/edge/main'; \
echo 'http://mirrors.ustc.edu.cn/alpine/edge/community'; \
echo 'http://mirrors.ustc.edu.cn/alpine/edge/testing'; \
} > /etc/apk/repositories && \ # 设置默认时区为亚洲/上海 (没有北京可选)
apk add --no-cache --upgrade apk-tools && \
apk add --no-cache tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
apk del tzdata #复制flask源码
COPY ./app /app

7.编写自动重建脚本rebuild.sh

老是忘记关selinux,放这里吧。

我的80已经给别的容器了,这里就映射8800吧,链接了mariadb。

echo 暂停selinux
setenforce 0    
echo 停止容器
docker stop Flask_Test
echo 删除容器
docker rm Flask_Test
echo 重建镜像
docker build -t flask_test .
echo 启动容器
docker run -d -t --restart=always --privileged --name Flask_Test -p 8800:80 --link My_mariadb:mysql flask_test
echo 重新打开selinux
setenforce 1

8.启动

给rebuild.sh运行权限后,直接运行就可以了。

9.测试

在浏览器输入你linux服务器地址:8800就可以看到helloworld。

例:http://192.168.1.3:8800

如果你没有手动上传flask源码目录,用syncthing同步的话,那么以后更新源码,直接rebuild就好了,方便很多。

flask项目结构(二)创建flask,同步docker的更多相关文章

  1. 一个比较良好的flask项目结构

    一个比较良好的flask项目结构 project/ app/                    # 整个程序的包目录 static/                 # 静态资源文件 js/    ...

  2. flask项目结构(四)使用sqlalchemy和alembic

    简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...

  3. flask项目结构(三)使用蓝图

    简介: Flask中的蓝图旨在针对这些情况: 把一个应用分解成一系列的蓝图.对于大型的应用是理想化的:一个项目能实例化一个应用, 初始化一些扩展,以及注册一系列的蓝图. 以一个 URL 前缀和/或子域 ...

  4. flask项目结构(一)mariadb

    简介: 本文主要是根据自己所学,创建一个flask项目,使用sqlalchemy,alembic,mariadb,bootstrap,APScheduler,selenium,request…………技 ...

  5. Flask项目实战:创建电影网站-创世纪(1)

    以后要养成写博客的习惯,用来做笔记.本人看的东西很多很杂,但因为工作中很少涉及,造成看了之后就忘,或者看了就看了,但是没有融入的自己的知识体系里面. 写博客一方面是做记录,一方面是给这段时间业余学习的 ...

  6. python web开发之flask框架学习(1) 创建flask项目

    python 开发越来越火,作为菜鸟,也应该学习一下,感觉还可以,记录下来,方便学习参考. 不管做什么开发首先肯定是安装环境,这里我用的是pycharm,python3.如果不清楚怎么安装环境可以去网 ...

  7. flask项目结构(五)使用数据库

    简介: 基础搭建好了,开始读写数据库吧.毕竟写的程序,也没什么高深的,就是CRUD,中文说是增删改查. 一:在数据库中增加测试数据. 在项目根目录建立init_test.py from config ...

  8. flask项目结构(六)快速开发后台flask-admin

    简介: Flask-admin 相当django的xadmin吧! 快速装配一个后台用来管理数据. Flask-admin也是有使用局限性的,他只适合开发小型快速的应用,不适合那种大型并发性高,逻辑复 ...

  9. python flask 项目结构

    1. 今天学习遇到一个问题,以前项目比较简单,所有的@app.route 都是写在一个文件app.py 中的,然后启动也是在这个文件中启动app.run .但是我今天 想写一个新的模块, 于是我新启了 ...

随机推荐

  1. 初探nginx负载均衡配置

    只简单说一下upstream的配置,如何进行负载均衡后续还需要多了解 1.另准备一个配置文件命名为nginx_test.conf 为了不污染原有的nginx.conf,提前复制一份配置文件做试验,然后 ...

  2. C#复习题(概念) --C#学习笔记

    第一章 1.公共语言架构(CLI)由哪几部分组成? (1)通用类型系统:定义了一套类型系统的框架,规定了数据类型的声明.使用和管理方法. (2)公共语言规范:一组语言规则的集合 (3)通用中间语言:一 ...

  3. G.711是一种由国际电信联盟(ITU-T)制定的音频编码方式

    http://zh.wikipedia.org/zh-cn/G.711 ITU-T G.711 page ITU-T G.191 software tools for speech and audio ...

  4. 2.2 调试 HelloWorld.exe 程序

  5. p1217 Prime Palindromes

    1.回文质数的数量很少 2.除了11以外的回文质数都是偶数. 3.1-1亿内的回文数不到30000个. 4.1-10000的质数约1000个. 这样深搜找出所有的回文数,再判断是否质数. #inclu ...

  6. 矩阵最优路线DP

    母题:矩阵中每个点有权值,每经过一个点就累加权值,求从a点到b点的最优(最大)路线. 题型1: 从左上到右下,只能向下或者向右 for 行 for 列 dp=max dp左,dp上; 扫一遍就行 有时 ...

  7. salt相关

      salt安装  https://docs.saltstack.com/en/latest/topics/installation/index.html#quick-install   salt远程 ...

  8. chmod 没有x权限怎么办

    解决方法1:    # /lib64/ld-linux-x86-64.so.2 /bin/chmod 755 /bin/chmod   //linux动态命令库   解决方法2:方法2提到的两种方法形 ...

  9. hdu-6438-贪心

    Buy and Resell Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  10. Mac系统安装和配置tomcat步骤详解

    一:下载 打开Apache Tomcat官网,选择需要的版本下载: 二:存放到本地 文件夹重名民为ApacheTomcat,放到/Users/计算机名/Library/目录下 三:启动Tomcat 打 ...