前情提要:首先创建一个简单的Flask项目,参考上一篇文章
链接: 将 Python (Flask) Web应用部署到Azure应用服务
一、准备环境
1、安装Docker
下载链接:Install Docker Desktop on Windows
2、下载 Linux 内核更新包
如果出现以上弹窗,点击链接,安装Linux 内核更新包
运行下载的更新包(系统将提示你提供提升的权限,选择“是”以批准此安装)
下载链接:旧版 WSL 的手动安装步骤 | Microsoft Docs
打开开始菜单,打开Power Shell,位置如下图:
将 WSL 2 设置为默认版本:
wsl --set-default-version 2
3、打开 Microsoft Store,下载Ubuntu
选择一个版本,点击获取
安装完成后,点击打开(首次打开,需要在控制台窗口等待1-2分钟)
为新的 Linux 分发版创建用户帐户和密码:
4、Visual Studio Code安装Docker插件
安装Azure Tool插件:
安装成功后, Ctrl+Shift+P,输入 Azure:Sign In 进行登录
安装Docker插件:
二、将项目打包成Docker镜像 并 部署
1、生成requirements.txt
进入虚拟环境
venv\Scripts\activate
安装 pipreqs
pip install pipreqs
生成依赖包清单:
pipreqs ./ --encoding=utf8 --force
2、编写Dockerfile
新建文件Dockerfile,没有后缀,如下图
# 基于的基础镜像
FROM python:3.8.10
# 设置工作目录为 /demo/
WORKDIR /demo/
# 将依赖文件拷贝到工作目录
COPY requirements.txt /demo/
# 执行pip指令,安装这个应用所需要的依赖
RUN pip install -r requirements.txt
# 拷贝当前目录的所有内容拷贝到工作目录下
COPY . /demo/
# 允许外界访问5000端口
EXPOSE 5000
# 设置容器进程为python app.py ,启动
ENTRYPOINT [ "python", "app.py" ]
3、构建镜像
先打开Docker Desktop,放着就好
docker build -f ./Dockerfile -t images0815 .
images0815 是镜像名
4、启动容器
docker run -itd -p 5000:5000 --name cntr0815 images0815
-p 5000:5000 为 主机(宿主)端口:容器端口 、
–name cntr0815 images0815 对应 容器名 镜像名
5、检查容器是否启动
docker ps
6、创建容器注册表
创建完成后,去注册表的访问密钥功能中,开启管理员用户,如下图
在Docker插件中,找到刚刚创建的镜像,右键选择Push,如下图所示
选择资源组->容器注册表
7、创建Web应用
选择订阅、资源组、区域、以及应用服务计划,[ 发布* ] 选择 [ Docker容器 ]
[ 映像源 ] 选择 [ Azure容器注册表 ],选择刚刚创建的注册表 [ registry0815 ]
创建成功后,点击 Web App的配置,将 [ 仅HTTPS?] 功能 关闭
8、浏览
在 [ 概述 ] 中点击浏览,或者点击URL,即可进行预览
三、更新版本
对代码进行一些更改,然后保存
重新构建镜像
docker build -f ./Dockerfile -t images0815:v2 .
images0815 是镜像名,v2 是新镜像的标签
构建完成:
进入我们之前创建的Web App,选择 [ 部署中心 ] 功能,在标记选项中 选择 [ v2 ] 版本,点击 [ 保存 ]
再次访问:
注意: 部署成功之后,可能有5分钟的延迟,如果更新后访问依然是旧版本,可以过一段时间再访问试试文章来源:https://www.toymoban.com/news/detail-487871.html
欢迎关注我的博客,与我一起学习,我将持续分享我的学习过程,我是 热爱学习的小翁同学~文章来源地址https://www.toymoban.com/news/detail-487871.html
到了这里,关于将Python项目(Flask)打包成Docker镜像,部署到微软云---Azure的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!