OracleNetsuite Dockerize 你的 Flask 应用
添加时间:2021-06-08 09:24:36
来源:
OracleNetsuite
Python 提供了许多分发 Python 项目的方法。其中一种方法是使用一种称为 Docker 的重要技术。Docker 是一个开源应用程序,允许管理员使用容器创建、管理、部署和复制应用程序。它基本上是一个平台,使开发人员能够通过将应用程序放入容器中来使其应用程序具有可移植性。您可以使用它使您的 Python 项目具有可移植性。Docker 容器通过将您的项目与系统隔离来消除依赖问题。为您的项目创建的 Docker 镜像可以移植到任何地方。Docker官方文档. 在本文中,我们将看到一个示例,在该示例中,我们将 Flask 应用程序转换为 docker 镜像,并查看 docker 的一些基本命令。Flask 是用于构建小型 Web 应用程序的微框架。我们只是将其用作 Python 项目的示例。可以以相同的方式使用任何其他 python 项目。有关 Flask 的更多信息,请访问此处。
设置 Flask 和 Dockerfile
制作项目文件夹
打开您的终端并为您的 Flask 应用程序创建一个文件夹,让我们
通过执行以下命令说“flask_docker_demo” :
$mkdir flask_docker_demo
$cd flask_docker_demo #改变目录
您也可以手动创建文件夹和以上文件。如果您没有安装 Gedit,那么您可以使用任何代码编辑器。
在终端输入以下内容
$gedit 演示.py
将以下代码粘贴到“demo.py”中。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "welcome to the flask tutorials"
if __name__ == "__main__":
app.run(host ='0.0.0.0', port = 5001, debug = True)
将以下代码插入之前创建的 Dockerfile
添加一个新文件,如果您还没有使用 gedit 创建它,则名称为“Dockerfile”。不要给出任何扩展。
将以下代码粘贴到其中
FROM python:alpine3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5001
ENTRYPOINT [ "python" ]
CMD [ "demo.py" ]
让我们看看我们的 Dockerfile 做了什么。FROM python:alpine3.7 从 docker hub 拉取 python 3.7 的镜像,COPY命令将烧瓶应用复制到容器中,WORKDIR命令设置工作目录。“RUN pip install -r requirements.txt”这个命令将把写在“requirements.txt”文件中的每一个需求一一安装到主机系统上。顾名思义,EXPOSE暴露了 Flask 应用程序将使用的端口 5001,以便稍后它可以与系统的端口映射。入口点和 CMD 一起执行运行这个文件的命令“python demo.py”。
将以下内容复制到“requirements.txt”文件中
如果您还没有使用 gedit 创建它,请手动创建 requirements.txt 并将以下行添加到其中
烧瓶
我们现在应该有以下结构。
测试烧瓶应用
如果您不在此目录中,请进入根文件夹“flask-docker-demo”并运行以下命令“python demo.py”
它应该启动我们的开发服务器,其中包含“http://0.0”上的flask .0.0:5001/”。
我们应该在浏览器中有以下输出
按 CTRL + C 关闭服务器
再次刷新浏览器,应该会报错,因为服务器已经关闭。
创建项目的 docker 镜像以及如何运行它
构建 Docker 镜像
确保您在项目的根目录中并运行以下命令。
须藤 docker build --tag flask-docker-demo-app 。
上面的命令将创建一个带有标签 flask-docker-demo-app 的应用程序。
注意:如果需要,请输入密码。
运行我们刚刚创建的 docker 镜像。
运行以下命令:
sudo docker run --name flask-docker-demo-app -p 5001:5001 flask-docker-demo-app
在上面的命令中,-name 参数为容器提供名称,-p 参数将主机(本例中为我的笔记本电脑)的端口 5001 映射到容器的端口 5001,因为容器是隔离的,我们需要映射它才能访问它从外部环境。最后“flask-docker-demo-app”指的是要运行的镜像。
再次测试 。
刷新浏览器
运行“ docker stop ”命令关闭镜像。要知道容器 ID,请输入“ docker ps ”命令。它显示了所有正在运行的容器。访问 Docker 的网站以获取更多 docker 命令,例如“将图像保存为 tar 文件”并将其导出到另一个系统中。
2021-07
到目前为止,我们已经为我们OracleNetsuite的标题创建了导航栏。完成标题的下一件事是在图像上方包含图像和文本,如下面的屏幕截图所示:让我们再次查看index.html 文件中标题的部分代码。代码中突出显示的部分显示了标题的图像菜单:要完成图像菜单,我们首先需要在 id … [了解更多]
2021-07
响应式网站:响应式网站是旨在适合所有类型的设备并调整网站布局以最适合屏幕尺寸的网站。无需制作任何其他设备版本的网站以适应小型设备。移动网站:移动网站是专为适应手机、平板电脑等特别小的设备屏幕而设计的网站。需要制作网站的桌面版本以适应移动设备特定的桌面屏幕。响应式网站和移动网站的区… [了解更多]
2021-06
OracleNetsuitePython 提供了许多分发 Python 项目的方法。其中一种方法是使用一种称为 Docker 的重要技术。Docker 是一个开源应用程序,允许管理员使用容器创建、管理、部署和复制应用程序。它基本上是一个平台,使开发人员能够通过将应用程序放入容器中… [了解更多]
2021-05
财务负责人戴了两顶帽子:一是遵守法规,以确保公司的行为和会计正确无误,并遵守公司开展业务的不同司法管辖区的法规;二是遵守法规。一种战略,确保公司达到财务里程碑和成功指标。当一家公司上市时,包括通过特殊目的收购公司(SPAC)上市时,这两个角色尤其重要。Oracle NetSuit… [了解更多]
2021-03
公司财务人员中记账人员的工作内容:1、从钉钉中下载审批完成的8种审批类型的单据数据,包含合同付款、费用报销等2、记账人员根据付款的性质及费用归属,把记账分成6种形式:合同付款(工程、成本)、合同付款(其他)、非合同付款(工程、成本)、非合同付款(其他)、费用报销(工程、成本)、费… [了解更多]