使用Docker 完成 FastAPI项目部署

服务器完成docker安装后

前言 学习笔记 技术不好

先检查下项目要访问的ip是否都处于生产环境的 (前端、数据库 后端项目ip可以使用localhost)
在这里插入图片描述

1.生成项目依赖包

pip freeze > requirements.txt

2.目录下编写 Dockerfile 文件
使用Docker 完成 FastAPI项目部署_第1张图片

FROM python:3.9.5
COPY . /zyr_init
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
WORKDIR ./zyr_init
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

FROM python:3.9.5 《----- 指定python的版本镜像
COPY . /zyr_init 《----- . 小点代表复制全部 /zyr_init 从当前目录下
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 《-----应该是设置时间 不重要 可有可无
RUN echo ‘Asia/Shanghai’ >/etc/timezone 《---- 时间 可有可无
WORKDIR ./zyr_init 《---- 设置镜像的工作目录
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ 《---- 安装依赖包
EXPOSE 8000 《-----对外暴露的端口信息
CMD [“uvicorn”, “main:app”, “–host”, “0.0.0.0”, “–port”, “8000”] 《-----这里的端口号一定要跟你项目里面的端口号一致


把项目拷到服务器后

1、在当前目录下执行
构建项目镜像

docker build -t myblog2 .           myblog2为镜像名

构建完后运行

docker run -d --name mycontainer -p 28000:8000 myblog2 
mycontainer:容器名   myblog2:镜像名 28000:容器端口 需要指向项目的端口 8000 

查看容器的运行情况

docker ps -a

在这里插入图片描述

✨访问成功!
使用Docker 完成 FastAPI项目部署_第2张图片
告诉你见爽歪歪的事情 修改了 项目源码是要重新构建镜像的 我tm给整无语死了

报错方案:
1、如果访问不成功 去看看 服务器的防火墙规则 是否添加了 容器端口号
2、看看服务器的防火墙是否处于关闭状态
3、访问前端、数据库的ip是否是服务器的ip 不可以设置成 localhost这些
4、我就不清楚了

你可能感兴趣的:(docker,fastapi,linux)