我们之前的部署都是基于本地的部署,我们这次来看下,如何基于docker去部署我们的项目。
1.首先去编写一个docker镜像的制作文件Dockerfile
FROM python:3.7
RUN pip install fastapi uvicorn aiofiles fastapi-async-sqlalchemy python-multipart
EXPOSE 80
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
其实简单,就是告知依赖的python3.7,需要安装依赖包。然后复制本地文件。然后执行部署。
2.写好文件,就是打包我们的镜像。执行命令
docker build -t myfastapi .
这里需要耐心等待就可以
打包完成后,我们可以用docker images查看
然后我们可以去部署。
<span class="code-snippet_outer"><span class="code-snippet__selector-tag">sudo <span class="code-snippet__selector-tag">docker <span class="code-snippet__selector-tag">run <span class="code-snippet__selector-tag">-d <span class="code-snippet__selector-tag">--name <span class="code-snippet__selector-tag">myfastapi <span class="code-snippet__selector-tag">-p 80<span class="code-snippet__selector-pseudo">:80 <span class="code-snippet__selector-tag">myfastapi</span></span></span></span></span></span></span></span></span></span>
启动后,我们可以看使用docker ps -a查看
接下来我们就可以访问了
http://127.0.0.1/openapi或者http://0.0.0.0/openapi都可以查看
两个地址都可以访问成功。
3.我们也可以把本地镜像导出出来。
docker save -o myfastapi.tar myfastapi
导出之后,我们以后部署可以在任意的docker去部署我们的服务。
然后我们在要去部署的机器执行
docker load < myfastapi.tar
然后去启动镜像即可。其实docker去部署很简单。
文章首发在公众号,欢迎关注。
Original: https://www.cnblogs.com/leiziv5/p/15416846.html
Author: 北漂的雷子
Title: FastAPI 学习之路(四十三)利用Docker部署发布