diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..80bf9bb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# 使用官方的paddle镜像作为基础 +FROM registry.baidubce.com/paddlepaddle/paddle:2.6.1-gpu-cuda12.0-cudnn8.9-trt8.6 + +# 设置工作目录 +WORKDIR /app + +# 设置环境变量 +ENV PYTHONUNBUFFERED=1 \ + # 设置pip镜像地址,加快安装速度 + PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple + +# 将当前目录内容复制到容器的/app内 +COPY . /app + +# 安装任何需要的包 +RUN pip install --no-cache-dir -r requirements.txt + +# 暴露端口 +# EXPOSE 8081 + +# 运行python脚本,具体脚本在命令行或docker-compose.yml文件中定义 +ENTRYPOINT ["python"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6cdb328 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3.9' + +services: + photo_mask_1: + container_name: photo_mask_1 + image: photo_mask + build: + context: . + restart: always + command: [ "photo_mask.py", "--clean", "True" ] + deploy: + resources: + reservations: + devices: + - device_ids: [ "1" ] + capabilities: [ "gpu" ] + driver: "nvidia" + + photo_mask_2: + container_name: photo_mask_2 + image: photo_mask + restart: always + depends_on: + - photo_mask_1 + command: [ "photo_mask.py" ] + deploy: + resources: + reservations: + devices: + - device_ids: [ "1" ] + capabilities: [ "gpu" ] + driver: "nvidia" + + photo_mask_3: + container_name: photo_mask_3 + image: photo_mask + restart: always + depends_on: + - photo_mask_2 + command: [ "photo_mask.py" ] + deploy: + resources: + reservations: + devices: + - device_ids: [ "1" ] + capabilities: [ "gpu" ] + driver: "nvidia" diff --git a/dockerfile b/dockerfile deleted file mode 100644 index 9fa3ddd..0000000 --- a/dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# 使用官方的Python基础镜像 -FROM python:3.12 - -# 设置工作目录 -WORKDIR /app - -# 将当前目录内容复制到容器的/app内 -COPY . /app - -# 安装任何需要的包 -RUN pip install --no-cache-dir -r requirements.txt - -# 暴露端口 -EXPOSE 8081 - -# 运行你的Python应用 -CMD ["python", "./main.py"] \ No newline at end of file diff --git a/photo_mask.py b/photo_mask.py index aac8bb9..3fe6e63 100644 --- a/photo_mask.py +++ b/photo_mask.py @@ -1,13 +1,30 @@ +import argparse import logging.config import traceback +from sqlalchemy import update + from auto_email.error_email import send_error_email +from db import MysqlSession +from db.mysql import ZxPhhd from log import LOGGING_CONFIG from photo_mask import photo_mask, SEND_ERROR_EMAIL if __name__ == '__main__': program_name = "照片审核自动涂抹脚本" logging.config.dictConfig(LOGGING_CONFIG) + + parser = argparse.ArgumentParser() + parser.add_argument("--clean", default=False, type=bool, help="是否将涂抹中的案子改为待涂抹状态") + args = parser.parse_args() + if args.clean: + # 主要用于启动时,清除仍在涂抹中的案子 + session = MysqlSession() + update_flag = (update(ZxPhhd).where(ZxPhhd.paint_flag == "2").values(paint_flag="1")) + session.execute(update_flag) + session.commit() + session.close() + try: logging.info(f"【{program_name}】开始运行") photo_mask.main()