简单分享下自己在服务器部署python项目的经验:
前提:服务器上安装好docker+python
一、项目打包
1、在idea中的项目根目录打开Terminal,执行以下命令
pip freeze > requirements.txt
注:用于服务器上直接安装项目所需依赖包
2、将项目打包放在服务器上,然后解压
注:自己找个地方新建个文件夹,将项目放进去解压即可
二、发布Linux上
1、在项目根目录创建Dockerfile,编写执行脚本,内容如下:
# 设置基础镜像
FROM python:3.7
# 设置代码文件夹工作目录 /app
WORKDIR /app
# 复制当前代码文件到容器中 /app
ADD . /app
# 设置时间
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 安装所需的包,这里的requirements文件名需和项目生成的一致
RUN pip install --trusted-host mirrors.tuna.tsinghua.edu.cn -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
# 执行入口文件
CMD ["python", "app.py"]
2、生成镜像
cd进项目根目录,app.py启动文件需要同Dockerfile放置在同一目录下,执行以下命令生成镜像,注意命令后的 ‘.’ 符号指的是在当前目录下执行创建,不要遗漏了该符号。创建会去执行下载基础镜像和各个依赖,需要等待一定时间。
后边有一个 “.”
docker build -t 镜像名称 .
查看镜像是否生成:docker images
3、.启动容器
在我的项目中启动的端口是9528,在启动容器时候把该端口映射到19528,这样我们就可以通过该端口访问项目了
docker run --name 容器名称 -d -p 19528:9528镜像名称
查看容器是否生成并启动:docker ps
4、抛出端口(用于外部可访问此端口):
/sbin/iptables -I INPUT -p tcp --dport 19528 -j ACCEPT
通过ip和端口访问测试的接口
好了,至此算是完成啦!
另外,还可以通过以下命令进入容器,退出容器等
进入容器
docker exec -it 容器名 /bin/bash
退出容器
exit