如何将本地的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"]
相关文章
|
10月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
2305 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
9月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
9月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1543 1
|
11月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
1873 21
|
10月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
951 13
|
12月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
761 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
10月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2533 0
|
10月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
3279 0
|
10月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
934 0