为照片涂抹编写docker

This commit is contained in:
2024-07-17 16:56:25 +08:00
parent dd895f98b5
commit 40484d6028
4 changed files with 86 additions and 17 deletions

22
Dockerfile Normal file
View File

@@ -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"]

47
docker-compose.yml Normal file
View File

@@ -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"

View File

@@ -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"]

View File

@@ -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()