在 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 应用程序,并且可以通过将端口连接到本地机器来访问该应用程序。