定制化开发将Python项目(Flask)打包成Docker镜像,部署到微软云---Azure

定制化开发将项目打包成镜像,定制化开发部署到微软云---Azure

前情提要:定制化开发首先创建一个简单的项目,定制化开发参考上一篇文章
链接:

一、准备环境

1、安装Docker

下载链接:

2、下载 Linux 定制化开发定制化开发内核更新包


定制化开发如果出现以上弹窗,点击链接,安装Linux 内核更新包

运行下载的更新包(系统将提示你提供提升的权限,选择“是”以批准此安装)

下载链接:

打开开始菜单,打开Power Shell,位置如下图:

将 WSL 2 设置为默认版本:

wsl --set-default-version 2
  • 1

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
  • 1

安装 pipreqs

pip install pipreqs
  • 1

生成依赖包清单:

pipreqs ./ --encoding=utf8 --force
  • 1

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" ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3、构建镜像

先打开Docker Desktop,放着就好

docker build -f ./Dockerfile -t images0815 .
  • 1

images0815 是镜像名

4、启动容器

docker run -itd -p 5000:5000 --name cntr0815 images0815
  • 1

-p 5000:5000 为 主机(宿主)端口:容器端口 、
–name cntr0815 images0815 对应 容器名 镜像名

5、检查容器是否启动

docker ps
  • 1

6、创建容器注册表

创建完成后,去注册表的访问密钥功能中,开启管理员用户,如下图

在Docker插件中,找到刚刚创建的镜像,右键选择Push,如下图所示
选择资源组->容器注册表

7、创建Web应用


选择订阅、资源组、区域、以及应用服务计划,[ 发布* ] 选择 [ Docker容器 ]

[ 映像源 ] 选择 [ Azure容器注册表 ],选择刚刚创建的注册表 [ registry0815 ]

创建成功后,点击 Web App的配置,将 [ 仅HTTPS?] 功能 关闭

8、浏览

在 [ 概述 ] 中点击浏览,或者点击URL,即可进行预览

三、更新版本

对代码进行一些更改,然后保存

重新构建镜像

docker build -f ./Dockerfile -t images0815:v2 .
  • 1

images0815 是镜像名,v2 是新镜像的标签


构建完成:

进入我们之前创建的Web App,选择 [ 部署中心 ] 功能,在标记选项中 选择 [ v2 ] 版本,点击 [ 保存 ]

再次访问:

注意: 部署成功之后,可能有5分钟的延迟,如果更新后访问依然是旧版本,可以过一段时间再访问试试

欢迎关注我的博客,与我一起学习,我将持续分享我的学习过程,我是 热爱学习的小翁同学~

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发