如何将本地的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"]
相关文章
|
11天前
|
Linux 网络安全 Python
linux centos上安装python3.11.x详细完整教程
这篇文章提供了在CentOS系统上安装Python 3.11.x版本的详细步骤,包括下载、解压、安装依赖、编译配置、解决常见错误以及版本验证。
81 1
linux centos上安装python3.11.x详细完整教程
|
5天前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
16 3
java读取linux服务器下某文档的内容
|
11天前
|
Linux Python
用python扫描linux开放的端口(3种方式)
这篇文章介绍了三种使用Python实现Linux端口扫描的方法,包括基础版端口扫描、全端口扫描和多线程扫描技术。
30 15
|
9天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
24 3
|
11天前
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
20 2
|
10天前
|
Unix Linux 网络安全
python中连接linux好用的模块paramiko(附带案例)
该文章详细介绍了如何使用Python的Paramiko模块来连接Linux服务器,包括安装配置及通过密码或密钥进行身份验证的示例。
13 1
|
11天前
|
Linux 编译器 开发工具
快速在linux上配置python3.x的环境以及可能报错的解决方案(python其它版本可同样方式安装)
这篇文章介绍了在Linux系统上配置Python 3.x环境的步骤,包括安装系统依赖、下载和解压Python源码、编译安装、修改环境变量,以及常见安装错误的解决方案。
20 1
|
16天前
|
Ubuntu Linux
Linux服务器的自动启动可以在哪里进行配置?
Linux服务器的自动启动可以在哪里进行配置?
72 3
|
9天前
|
Linux Python
linux 封装 python
linux 封装 python
11 0
|
9天前
|
Linux Python
Linux 下封装 Python
Linux 下封装 Python
11 0
下一篇
无影云桌面