# 项目打包 本地打包python项目依赖,前提已经配置好环境。 ```bash pip freeze>requirements.txt ``` ## Linux发布 ### 直接部署 在服务器原生环境下先配置安装相应的依赖后,再直接部署。 ```bash pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com -r requirements.txt python3 app.py ``` ### Docker部署 docker容器化部署需要一些准备工作,如服务器安装Docker,项目配置Dockerfile文件等。docker安装配置好之后继续。 创建Dockerfile。一个docker容器的运行基础是镜像,实际上镜像就是代码与运行环境打包生成的。docker创建镜像有三种方式,分别是基于已有容器创建、基于本地模板创建、dockerfIile创建,一般建议采用dockerfile创建方式。 步骤: 在项目根目录创建Dockerfile,编写执行脚本。 ```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.aliyun.com -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ #执行入口文件 CMD ["python", "app.py"] ``` 打包上传至服务器,压缩和解压缩。 ```bash unzip app.zip ``` 生成镜像。cd进项目根目录,app.py启动文件需要同Dockerfile放置在同一目录下,执行以下命令生成镜像,注意命令后的 ‘.’ 符号指的是在当前目录下执行创建,不要遗漏了该符号。创建会去执行下载基础镜像和各个依赖,需要等待一定时间。 ```bash docker build -t [image_name] . ``` 启动容器。在启动容器时需要做一个端口映射,从宿主机指定端口映射容器端口,前一个为宿主机端口后一个为容器端口。 ```bash docker run --name [container_name] -d -p 9000:5000 [image_name] ``` 额外辅助命令 ```bash #保存镜像 docker save container_id > path_dir #导入本地镜像 docker load -i file.tar #进入容器 docker exec -it container_name #退出容器 exit ```