From 2403dcba582923abab94aede75cdbb2b799c4ced Mon Sep 17 00:00:00 2001 From: Zhanpeng Yang Date: Wed, 25 Sep 2024 20:17:05 +0800 Subject: [PATCH] [refactored] update method of production environment --- .gitignore | 2 ++ Dockerfile | 15 +++++++++++++++ main.py | 2 +- run.ps1 | 27 +++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 run.ps1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..99e4b84 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +build \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2ef94a0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.12.6-bookworm + +WORKDIR /app +RUN pip install -i https://mirrors.bfsu.edu.cn/pypi/web/simple flask msgpack onnxruntime gunicorn + + +# 指定容器创建时的默认命令。(可以被覆盖此命令为生产部署时的命令 +CMD gunicorn 'main:app' -b 0.0.0.0:22111 + + +### 若为开发阶段,则在运行时覆盖上述命令 +#python main.py + +# 声明容器运行时监听的特定网络端口。但不会真的映射到外面 +EXPOSE 22111 diff --git a/main.py b/main.py index afa8eaa..b9fc826 100644 --- a/main.py +++ b/main.py @@ -55,4 +55,4 @@ def register(): return response if __name__ == '__main__': - app.run(debug=True,host="0.0.0.0") \ No newline at end of file + app.run(debug=True,host="0.0.0.0",port=22111) \ No newline at end of file diff --git a/run.ps1 b/run.ps1 new file mode 100644 index 0000000..81bf14e --- /dev/null +++ b/run.ps1 @@ -0,0 +1,27 @@ +Param( [string]$cmd, [string]$version) + + +If($cmd -eq "build_docker"){ + docker build -t sems-model-inference:latest . +} + + +If($cmd -eq "dev"){ + docker run --rm -p "22111:22111" -v "C:\SEMS-development\SEMS-model-inference:/app" --name sems-model-inference sems-model-inference:latest python main.py +} + + +If($cmd -eq "prod"){ + docker run --rm -d -p "22111:22111" -v "C:\SEMS-development\SEMS-model-inference:/app" --name sems-model-inference sems-model-inference:latest +} + + +If($cmd -eq "remove_docker"){ + docker stop sems-model-inference +} + + + +If($cmd -eq "release"){ + Compress-Archive -Path ./main.py,super_resolution.onnx -DestinationPath "./build/SEMS-model-inference-$version.zip" -Force +} \ No newline at end of file