###### tags: `Nas and Android`
# 第二步,在NAS上基於Docker安裝Python與Flask並架設一個簡易Web應用。
關鍵字: Python、Flask、Web應用。
入門flask: https://ithelp.ithome.com.tw/articles/10258223?sc=pt

flask在一般電腦實作當中,可以使用瀏覽器去看結果,倘若flask是安裝在Nas上,就需要開啟Nas的Web Staion套件。

## 先將面入門flask的參考連結在nas上做一次。
首先要將python和flask基於docker安裝到Nas上。
<font size=6>(注意先暫時關閉防火牆)</font>
有設定防火牆的要關,沒設定的不用理會。
參考網站1:https://teslalifesharing.tustudio.app/2020/10/05/synology-nas-docker-python/
參考網站2:https://blog.csdn.net/stone0823/article/details/120932510
2個網站上做結合,將參考網站1的requirements.txt改成與參考網站2。
### 第一步:
先關閉防火牆與開啟ssh服務,之後記得恢復,不然被駭爛。
### 第二步:
新增下圖中的資料夾以及檔案

之後對Dockerfile與requirements.txt進行編輯。
 
<font color=green>Dockerfile的第11行,表示這個docker容器只要一配置,就會去執行python的mian.py的意思。</font>
再把[入門flask](https://ithelp.ithome.com.tw/articles/10258223?sc=pt)參考網站提供的程式碼
https://gitlab.com/GammaRayStudio/DevelopmentGroup/Python/FlaskSE 直接丟入flask_test資料夾。

---
### 第三步
在flask_test資料夾裡面,新增並編輯main.py-

到你的桌機開啟putty或是其他shell,存取nas的終端機服務。
開啟ssh後到指定路經(我的路徑是:/volume1/docker/python-flask)輸入以下指令:
`sudo docker build -t flask_test .`
下載並設定docker容器。 而該容器能夠執行python。

之後即可在docker裡面發現新的docker映像檔。

### 第四步(很重要)。
到docker套件當中進行"佈置"docker映像檔。

進行docker設定

可看到我們剛才dockerfile設定的指令。
<font size=3 color=red>注意! Dockerfile在nas的路徑會影響執行指令的路徑。</font>

連接埠設定★★★★★:
由於我們的main.py設定為port=5000,這時把docker想成一個獨立作業系統開出port:5000,然後用Nas的port:6262(隨便設)去與docker容器的port進行對接。(網路port相關知識)
| 1 | 2 |
| -------- | -------- |
| |
儲存空間設定 (如果有出錯,先跨過這個步驟。 這步驟有無都無所謂,因為是docker,只要刪除docker就全不見了)

這個東西就很像使用虛擬機(VMware或VM Virtualbox)時,實體電腦與虛擬機的共享資料夾一樣,虛擬機可以掛載實體機的資料夾。
# 最終結果
左邊是Nas,右邊是我桌機的畫面。 然後該DOCKER就會一直執行著這樣~~

<font size=5 color=red>
最後記得: 恢復防火牆與SSH的設定。
</font>
<font size=5>注意!!!!!!!!!!!!!</font>
在nas上面執行python與flask,只要每修改一次.py檔案,都需要重新"佈置"docker(也就是說從第3步開始重新做),所以最好先在桌機或筆電上開發完後,才將你的專案移植到NAS上 (Nas只提供運行的環境,並沒有提供開發的環境。),並再進行第二步決定要執行哪個檔案與參數。
又因為是移植到NAS上,你在桌機的Python與Flask都也用docker去安裝,那麼移動到Nas就只需要輸出一個docker file與python的requirements.txt就可以輕鬆移植到Nas上了。