创建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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FROM tiangolo /uwsgi-nginx-flask :python3.6-alpine3.7
MAINTAINER jackadam<[email protected]>
#变更源
# 安装包源切到中科大, 国内访问加速
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就好了,方便很多。

猜你喜欢

转载自www.cnblogs.com/WHWWHW/p/11696651.html