### 说明 项目使用的基础镜像基于官方的python:3.12-slim镜像生成,里面安装了uv,修改了uv的镜像源配置 ##### /root/.config/uv/uv.toml 内容 ```toml [[index]] url = "https://mirrors.aliyun.com/pypi/simple/" default = true ``` #### 镜像构建 ##### Dockerfile的方式构建 ```shell cd /root/workspace/SoraWatermarkCleaner docker build -t sorawm:{tag} . ``` ##### Docker-compose的方式构建 ```shell cd /root/workspace/SoraWatermarkCleaner docker compose --build sorawm_server IMAGE_TAG=$(date +%Y%m%d%H%M%S) docker compose --build sorawm_server ``` ##### Docker-compose的方式构建且启动【推荐使用】 ```shell cd /root/workspace/SoraWatermarkCleaner docker compose up -d --build sorawm_server IMAGE_TAG=$(date +%Y%m%d%H%M%S) docker compose up -d --build sorawm_server ``` #### 容器启动和重启 ##### Dockerfile方式 ```shell docker run -d --name sorawm-test -p 5344:5344 1aaffb469053 docker restart {容器ID} ``` ##### Docker-compose的方式 ```shell docker compose up {service_name} docker compose restart {service_name} ``` #### 代码更新 ##### Dockerfile的方式,需要重新构建镜像 ```shell cd /root/workspace/SoraWatermarkCleaner docker build -t sorawm:{tag} . docker run -d --name sorawm-test -p 5344:5344 1aaffb469053 ``` ##### Docker-compose的方式 ```shell docker compose restart {service_name} ``` tag建议使用yyyyMMddHHmmss的形式生成 \ 项目最终生成的镜像文件比较大,将近9个G,与.venv环境有关,后续考虑优化 #### 生成uv.lock ```shell RUN uv lock -i https://mirrors.aliyun.com/pypi/simple/ ``` 生成uv.lock使用阿里的镜像源,原因: 机器上访问官方的镜像源比较慢,需要换成国内的源。 #### 启动脚本 sorawm_start.sh ```shell #!/bin/bash source /app/.venv/bin/activate uv run streamlit run app.py --server.port 8503 --server.headless true --browser.gatherUsageStats false & uv run python start_server.py --host 0.0.0.0 --port 5344 & wait ``` 前端正确启动方式(关闭交互提示,便于自动化预览): uv run streamlit run app.py --server.port 8503 --server.headless true --browser.gatherUsageStats false 后端正确启动方式(关闭交互提示,便于自动化预览): uv run python start_server.py --host 0.0.0.0 --port 5344