Python 规范
python 规范旨为你提供 python 服务如何部署到腾讯云托管的部署规范,该规范主要包含项目目录结构规范、开发环境规范、依赖管理规范等,以满足接入要求。
python 项目的示例可参考创建一个Flask应用
项目规范
项目根目录下必须包含以下文件:
├── Dockerfile
├── manage.py
├── requirements.txt
Dockerfile
: 是一个文本文件,包含了一系列指令,用于定义如何构建一个 Docker 镜像。通过编写 Dockerfile,可以自动化地创建包含应用程序及其运行环境的镜像,实现环境一致性和快速部署。
manage.py
: 服务的启动文件,当前名称必须与其保持一致
requirements.txt
: 项目的依赖管理文件
requirements.txt 生成规范
requirements.txt 文件必须在 python 虚拟环境下生成,否则生成的 requirements.txt 中会包含机器下的所有依赖,可能会导致部署失败。
按照一下步骤在目录中设置项目。
python -m venv env
激活虚拟环境
source env/bin/activate
将项目复制到当前目录下,进入项目目录中执行以下命令配置依赖项
pip freeze > requirements.txt
Dockerfile
FROM alpine
# 容器默认时区为UTC,如需使用上海时间请启用以下时区设置命令
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
# 选用国内镜像源以提高下载速度
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tencent.com/g' /etc/apk/repositories \
&& apk add --update --no-cache python3 py3-pip gcc python3-dev linux-headers musl-dev \
&& rm -rf /var/cache/apk/*
# 使用 HTTPS 协议访问容器云调用证书安装
RUN apk add ca-certificates
# 拷贝当前项目到/app目录下(.dockerignore中文件除外)
COPY . /app
# 设定当前的工作目录
WORKDIR /app
# 安装依赖到指定的/install文件夹
# 选用国内镜像源以提高下载速度
RUN pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple \
&& pip config set global.trusted-host mirrors.cloud.tencent.com \
&& pip install --upgrade pip --break-system-packages \
# pip install scipy 等数学包失败,可使用 apk add py3-scipy 进行, 参考安装 https://pkgs.alpinelinux.org/packages?name=py3-scipy&branch=v3.13
&& pip install --user -r requirements.txt --break-system-packages
# 执行启动命令
# 写多行独立的CMD命令是错误写法!只有最后一行CMD命令会被执行,之前的都会被忽略,导致业务报错。
# 请参考[Docker官方文档之CMD命令](https://docs.docker.com/engine/reference/builder/#cmd)
CMD ["python3", "manage.py"]
配置规范
配置一般放到项目目录中, 或者使用环境变量配置。
端口
服务部署时,在云托管上指定服务的启动端口即可。