如何将本地的python项目部署到linux服务器中

简介: 如何将本地的python项目部署到linux服务器中


前言

本地写好的python项目,如何部署在服务器上运行呢?今天,我们就来抽一点点时间来看看。(网上找的资料,大部分都囫囵吞枣的,看过之后难以吸收,所以今天就自己整理整理)

1.生成项目的依赖列表

在本地项目中的终端,需要执行命令:

pip freeze > requirements.txt

然后我们会发现在项目的根目录下会生成一个文件,如图所示:

2.在项目中创建dockerfile文件,示例如下:

FROM python:3.10-slim
# 设置工作目录
WORKDIR /home/app
# 复制项目文件到容器中
COPY . /home/app
# 安装项目依赖项
RUN pip install -r requirements.txt
# 运行
CMD ["python", "main.py"]

3.将项目文件和源码都上传至服务器中

自行想办法上传就行,相关上传软件市面上多的很,我这边使用的是WindTerm,这个工具可以将文件直接拖到服务器上,且上传很快。

4.使用命令构建docker镜像,如下是命令:

docker build -t <镜像名称> <Dockerfile路径>

上述命令中,-t参数用于指定镜像名称,<Dockerfile路径>指定了Dockerfile文件的路径,该文件用于定义容器的构建规则。

下面是个示例:

docker build -t ciyun-project:v1.0 .

注意,最后有个小数点。

5.停止并删除旧的容器(如果需要):

如果你之前已经运行了一个容器,并且想要用新的镜像替换它,首先需要停止并删除旧的容器:

docker stop 镜像名
docker rm 镜像名

5.启动容器

运行新的容器:

使用新的镜像启动容器:

在重新构建了镜像后,我们需要启动容器来运行修改后的项目代码。可以使用以下命令启动容器:

docker run -d -p <宿主机端口>:<容器端口> --name <容器名>  <镜像名称>

代码示例:

docker run -d -p 7582:7582 --name fastapi-project ciyun:v1.0

启动的时候,挂在目录:

docker run -v /home/app/ciyun:/home/app/ciyun -p 7582:7582 -d --name  fastapi-project ciyun:v1.0

这里的 -v /home/app/ciyun:/home/app/ciyun 参数指定了宿主机的 /home/app/ciyun 目录挂载到容器的 /home/app/ciyun 目录。-p 7582:7582 参数将容器的 7582 端口映射到宿主机的 7582 端口。-d 参数表示后台运行容器,–name your_container_name 为你的容器指定一个名称,your_image_name 是你的 Docker 镜像名称。

6.查看运行状态与日志

docker ps
docker logs 你的容器id

7.附fastapidockerfile文件

FROM python:3.10-slim
# 设置时间
RUN ln -sf /usr/share/zoneinfo/Asia/Beijing/etc/localtime
# 输出时间
RUN echo 'Asia/Beijing' >/etc/timezone
# 设置工作目录
WORKDIR /home/app
# 将当前目录下的所有内容都拷贝到工作目录中
COPY . /home/app
# 禁用缓存并批量安装包(后面的链接是利用豆瓣源安装,速度会加快)
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.douban.com/simple/
# 暴露端口
EXPOSE 7581
# 运行命令
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "7581"]

8.附纯python项目的dockerfile文件

FROM python:3.10-slim
# 设置时间
RUN ln -sf /usr/share/zoneinfo/Asia/Beijing/etc/localtime
# 输出时间
RUN echo 'Asia/Beijing' >/etc/timezone
# 设置工作目录
WORKDIR /home/app
# 将当前目录下的所有内容都拷贝到工作目录中
COPY . /home/app
#RUN pip install -U pip
#RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
#RUN pip config set install.trusted-host mirrors.aliyun.com
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python", "main.py"]
相关文章
|
8天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
24 7
|
11天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
14天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
33 0
服务器linux!!!
|
16天前
|
人工智能 安全 Linux
|
18天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
84 3
|
4天前
|
网络协议 安全 Linux
Linux 上设置自己的公共时间服务器
Linux 上设置自己的公共时间服务器
16 0
|
16天前
|
Linux
Linux 修改服务器时间
【10月更文挑战第27天】Linux 修改服务器时间
40 0
|
19天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
缓存 Python
简易代理服务器之python实现
代理服务器是在client和server之间的一个服务器,一般起到缓存的作用,所以也叫缓存服务器。比如: A ----(HTTP)----》 B ----(HTTP)----》 C 其中A是客户端,C是服务器端,那么B就是proxy server了,是代理服务器,也是缓存服务器:当A发起请求时要求获得C上的一个文件,需要先经过B,B在自己的文件系统中寻找是否有A所请求的文件,如果有,就发给A,完成一次响应;如果没有,则在B上创建新的HTTP请求,发送到C,并将C的响应缓存到文件中,同时回发给A。
2492 0
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。