flask項目結構(二)建立flask,同步docker

簡介:

創建flask容易,那麼部署就比較麻煩了,配這個,配那個,更新…………python

因此我從構建,就考慮部署的問題,使用docker部署。mysql

程序都打包進docker,本博客有相關文章。linux

pycharn直接建立一個空白的flask項目就行了nginx

1.安裝docker並自動啓動

本博客有相關文章。sql

2.建立生成鏡像的目錄

在服務器上建立以下:docker

/storage/temp/
├── app
│   ├── app      ,這個目錄裏面就是flask源碼,一個文件,兩個目錄
│   │   ├── main.py
│   │   ├── static
│   │   └── templates
│   └── uwsgi.ini   這個是uwsgi的配置
├── dockerfile   這個是dockerfile,生成鏡像的文件
└── rebuild.sh   爲了中止容器,刪除容器,啓動容器寫的腳本。flask

3.配置syncthing同步

具體看syncthing同步教程。瀏覽器

4.配置uwsgi.ini

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

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就行了,方便不少。

相關文章
相關標籤/搜索