使用 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 -t graduatetool . --no-cache
即可建置出 graduatetool 的 image ( 可透過 docker image ls 查看 )。
接著執行
docker run -d --name graduateApi -p 9000:9000 graduatetool:latest
就可以 requests 到 http://localhost:9000。
四、 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 官方帳號,即時接收最新文章通知
留言
張貼留言