fastapi -html docker部署


前言

fastapi html的docker 部署


https://blog.csdn.net/weixin_33028765/article/details/112150517

一、fastapi的docker部署

1.生成包

第一步生成项目所需要安装的包,
pycahrm终端运行:
pip freeze > requirements.txt

在这里插入图片描述
一般而言这种方式会多很多
pytz @ file:///tmp/build/80754af9/pytz_1612215392582/work
这种形式的包,所以运行
pip list --format=freeze > requirements.txt
然后删除一些项目中没有用到的包,尽可能让要安装的包少一点。

2.将文件放入形式如下

在这里插入图片描述

requirements.tex 放入app目录下 和main同级

3.编写dockerfile文件

和app同级新建一个Dockerfile(其实就是pycharm中的file)写入以下信息

FROM python:3.7
COPY app/requirements.txt /app/requirements.txt
RUN pip3 install -r /app/requirements.txt   -i https://pypi.doubanio.com/simple/
COPY ./app /app
EXPOSE 80
CMD ["uvicorn","app.main:app","--host","0.0.0.0","--port","80"]

第一 python:3.7 这个是 docker 生成镜像的版本,(使用到fastapi的依赖(Depends),python版本需要3.7以上)
第二 COPY app/requirements.txt /app/requirements.txt 其实就是将app目录下的requirements.txt 赋值到 docker镜像的目录app下(docker本身有个app目录)。
第三 RUN pip3 install -r /app/requirements.txt -i https://pypi.doubanio.com/simple/ 安装依赖包,这里的 /app/requirements.txt 指的是docker镜像的目录,而不是本地的目录
第四 COPY ./app /app 使用./app 因为dockerfile文件和app文件同级,所以./app 将app的全部文件复制到docker镜像的app中
第四 EXPOSE 80 开放80端口
第五 CMD [“uvicorn”,“app.main:app”,“–host”,“0.0.0.0”,“–port”,“80”] 这个是运行代码的关键一步,app.main:app 指的是在docker镜像上fastapi主应用的位置,

在pycharm终端运行:

docker build -t app .     #创建镜像,app是镜像名,自己定义(如果是同一个程序,最好镜像名一样,因为docker每次创建不同名镜像的时候都会安装requirements文件),终端路径要对(上面的emotion路径下)
docker run -d --name emothion -p 8000:80 app   #运行镜像,并生成容器,-d后台,emothion 容器名也是自定义,-p 8000:80 端口映射将8000映射到80(相当于我使用8000的端口可以访问到80端口的镜像), app指的是镜像名

二、html docker部署

1.文件目录

在这里插入图片描述

2.dockfile文件的写入

在static中常见Dockerfile文件,写入

FROM nginx:1.15.2-alpine
COPY . /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

然后终端进入到static目录下

docker build -t html_test.     
docker run -d --name html-p 80:80 html_test

运行完成之后,在浏览器输入:
localhost/home.html 就可以进入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值