在 Docker 中構建和部署 Flask 應用
Docker 允許您在容器內構建、管理和部署應用程式。它提供了一個打包的環境,並允許開發人員透過容器化來建立可移植的應用程式。您可以輕鬆地使用單一技術 Docker 構建 Flask 應用程式、管理它並使其可移植。您也可以使用類似的技術構建和部署其他 Python 框架。
在本文中,我們將討論如何使用 Flask 構建一個簡單的應用程式,並透過容器化將其轉換為 Docker 映象。您可以按照下面提到的步驟執行相同的操作。
步驟
建立一個新的專案資料夾。我們將其命名為 **flask_project**。
移動到該目錄並建立一個 Python 檔案。我們將其命名為 **app.py**。
在檔案中編寫一個簡單的 Flask 程式碼。檢視下面的程式碼。
#Import the flask module
from flask import import Flask
#Create a Flask constructor. It takes name of the current module as the argument
app = Flask(__name__)
#Create a route decorator to tell the application, which URL should be called for the #described function and define the function
@app.route('/')
def tutorialspoint():
return “Welcome to TutorialsPoint”
#Create the main driver function
if __name__ == ‘__main__’:
#call the run method
app.run()您可以將上述程式碼複製到 app.py 檔案中,該檔案顯示一個簡單的歡迎語句。
建立另一個名為 requirements.txt 的檔案。此檔案將包含要安裝的軟體包列表。對於此專案,我們只需要安裝 Flask 庫。因此,在檔案中僅包含“flask”(不帶引號)。
現在,在根目錄中,建立另一個名為 Dockerfile 的檔案。此檔案將包含所有有助於您構建 Docker 映象的命令。
在 Dockerfile 中,複製以下程式碼。
#Create a ubuntu base image with python 3 installed. FROM python:3 #Set the working directory WORKDIR /usr/src/app #copy all the files COPY . . #Install the dependencies RUN apt-get -y update RUN pip3 install -r requirements.txt #Expose the required port EXPOSE 5001 #Run the command CMD [“python3”, “./app.py”]
上面建立的 Dockerfile 建立了一個安裝了 Python 的 Ubuntu 基礎映象。它設定了一個工作目錄,然後將主機上的所有檔案複製到 Docker 伺服器。然後它執行更新命令並安裝 requirements 檔案中提到的 Flask。然後它公開埠 5001,該埠將執行我們的 Flask 應用程式,並使用 CMD 命令執行 app.py 檔案。
現在,使用以下命令構建映象。確保您位於根目錄中。
sudo docker build -t flaskproject . (don’t forget the dot)
構建映象後,使用以下命令透過互動式 shell 在 Docker 容器內執行 bash。
sudo docker run -ti -p 5001:5001 flaskproject bash
上述命令透過連線埠執行映象並開啟 bash。
在 bash 中,執行以下命令 -
python3 app.py
您將看到螢幕上出現類似以下內容。
正在提供 Flask 應用“app”(延遲載入)
環境:生產 警告:這是一個開發伺服器。不要在生產部署中使用它。請改用生產 WSGI 伺服器。
除錯模式:開啟
正在運行於 http://0.0.0.0:5001/(按 CTRL+C 退出)
使用 stat 重新啟動
偵錯程式處於活動狀態!
這意味著您的 Flask 應用程式已成功在容器中執行,並且可以透過本地機器上的埠 5001 訪問。
開啟瀏覽器並轉到 URL - http://0.0.0.0:5001/
您將看到以下訊息:“歡迎來到 TutorialsPoint”
總而言之,使用這些步驟,您可以輕鬆地在 Docker 容器中構建和部署 Flask 應用程式,並且可以透過將埠連線到本地機器來訪問該應用程式。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP