使用 docker 部署 Python Flask | 心得分享

上篇 畢業學分計算工具開發心得 | side project 的嘗試與迭代 有提到近期在做的專案,很高興不久前有找到 2 位學弟妹有興趣來往下做開發。由於他們比較少開發經驗,也促使我開始思考怎麼做能幫助他們開發更順暢。

目前想到了以下三點會優先執行:
1. 快速建置開發環境
2. 寫文件
3. 計算邏輯的模組化

這次文章想分享這次為了加速建置開發環境,研究了用 docker 來安裝 python、相關套件、以及啟動 Flask API:

一、安裝 docker

可以直接參考 docker 文件 來進行安裝,就不多贅述。 

二、建立 requirements.txt

至 Flask 專案底下新增 requirements.txt 檔案,用來管理需要安裝的套件。

Flask==1.0.2
gunicorn==19.5.0
gevent==1.4.0



三、建立 Dockerfile

一樣在 Flask 專案底下新增 Dockerfile ( 不需有後綴檔名 ),稍稍說明一下他會做哪些事情:

FROM python:3.6

MAINTAINER alansyue b123105@gmail.com

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

CMD ["gunicorn", "-k", "gevent", "-b", "0.0.0.0:9000", "app:app"]


1. FROM python:3.6 :使用 python 這個 image
2. COPY ./requirements.txt /app/requirements.txt : 複製 requirements.txt 檔案
3. RUN pip install -r requirements.txt: 安裝 requirements.txt 裡面的套件
4. 最後用 gunicorn 去執行 app.py ( 用 Flask 撰寫的 api )

四、 Docker build image 及 container

在 terminal 執行

docker build -t graduatetool . --no-cache 

即可建置出 graduatetool 的 image ( 可透過 docker image ls 查看 )。

接著執行

docker run -d --name graduateApi -p 9000:9000 graduatetool:latest 

就可以 requests 到 http://localhost:9000

總結

之前比較少碰 Docker,覺得很有趣,過程也順勢補充專案文件,希望可以幫助到後續開發。第一次嘗試使用 Docker,如果內容有錯誤,再請不吝指教,感謝!



如果喜歡我的文章,想隨時收到最新行銷、技術分享,歡迎按 fb 粉專讚

  加入好友  或加入 LINE 官方帳號,即時接收最新文章通知

留言

這個網誌中的熱門文章

2021 年 1 月熱門電子書推薦 | 精選書籍推薦

CodeIgniter 查詢生成器 - update_batch 介紹

自創思維:人生是永遠的測試版,瞬息萬變世界的新工作態度 | 讀書心得