zoukankan      html  css  js  c++  java
  • flask项目结构(二)创建flask,同步docker

    简介:

    建立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就好了,方便很多。

  • 相关阅读:
    为什么接口类型可以直接new?
    Eclipse查看JDK源码
    模板模式与策略模式/template模式与strategy模式/行为型模式
    [LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal(根据二叉树的前序和中序遍历构建二叉树)
    [LeetCode] 114. Flattern Binary Tree to Linked List(将二叉树扁平化成单链表)
    [LeetCode] 208. Implement Trie (Prefix Tree)(实现字典树)
    [LeetCode] 337. House Robber Ⅲ(偷家贼之三)
    [LeetCode] 621. Task Scheduler(任务调度器)
    [LeetCode] 394. Decode String(解码字符串)
    [LeetCode] 11. Container with Most Water(盛水量最多的容器)
  • 原文地址:https://www.cnblogs.com/jackadam/p/8665098.html
Copyright © 2011-2022 走看看