部署streamlit app到Azure (Docker 入门篇)

文章目录

前言

三个步骤 

一、本地运行Streamlit

二、Docker 包装

Dockerfile

environment.yml

run.sh

建立镜像

三、部署到Azure云

deployment.yml

nginx.conf

run.sh

Dockerfile

总结

Reference


前言

怎么说呢,为了让简历更加吸引人,博主不得不踏上了Azure, Docker的学习路程,开始为自己原来课上做的project部署一个streamlit app网站。project沿用了教授随便起的名字-musical_robot, 可以帮助用户判断一段音乐属于什么类别(hiphop, rap...)。 整个网站是用streamlit 搭建的,但是只能在自己电脑上localhost运行。博主便想把它部署在Azure上,这样远程就能访问啦。

首先,这个原project用到了机械学习方面的内容,需要下载很多的音乐片段,这些片段用librosa分析成乐谱spectrogram后,被分类并保存。所以原porject需要包含这些音乐片段,大概有8000个30秒的片段,7.5GB大小。没部署前,用户使用这个project的条件之一就是先下载7个多G的音乐 :( 不是很理想对吧?所以作者想了办法把它部署在云平台上,这样一来用户电脑手机随时都可以使用这个project。

好了,让我们见证一下菜鸡博主如何做到streamlit云部署的吧。


三个步骤 

 这篇文章帮助新手快速用Docker将streamlit app包装,包装后上传到Azure云服务器上,形成一个托管的网站。 部署的网站是azurecontainer.io的域名,用户也可以之后自行购买自定义的网站域。最后的网站demo如下:

那么,简单将这一系列操作分为三个步骤:本地运行streamlit, docker 包装,部署到Azure。有耐心的同学往下看叭,希望能有帮助。 


一、本地运行Streamlit

 稍微介绍一下我的project目录树,看起来是这样的:

最上面的目录是musical_robots, 和它平行的最外层,是很重要的之后会用到的Dockerfile, deployment.yml等等...

musical_robots 之下是Tests, __pycache__(这个本来应该删掉的...),和data。

demo.py 包含的是用streamlit框架写的网站主体,spectrogram_dataset.py, svm_prediction.py, 还有dataset_queries.py 都是一些机器学习和提取数据的方程。机智的你也许发现了,还有个Justin-Bieber的歌曲《Stay》哈哈哈,是用来demo展示的。

注意的是,这里的streamlit写框架时,你的工作目录需要是和Dockerfile, musical_robots文件夹平行的,根目录这里。需要使用相对路径,而不是绝对路径。因为我们要把streamlit的app上传到网络上,每次这个app在借助云服务器运行时,用的路径是一样的,确定的,而不是你自己电脑上的。这里建议在写框架时用 os.path(),os.getcwd() 方法。注意这些,之后就不会被路径错误的问题困扰啦。


二、Docker 包装

还没有安装Docker的用户,可以官网安装一波。作者使用的是Windows系统,平常也经常使用WSL2, 安装Docker for Windows将自动帮助你连接WSL2,同时也可以在Windows客户端直接操作,非常好用。

这一步的重点是学习如何编辑Dockerfile, envrionment.yml。Dockerfile是告诉Docker如何将你的应用包装的重要文件,enviroment.yml 告诉机器需要安装的方法library, package, 等应用包裹。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值