# Docker 部署指南 ## 项目概述 这是一个基于 Streamlit 的 Web 应用,提供了多语言文本处理功能。 ## 部署方式 ### 方式一:使用 Docker Compose(推荐) 1. **构建并启动服务** ```bash docker-compose up --build ``` 2. **后台运行** ```bash docker-compose up -d --build ``` 3. **停止服务** ```bash docker-compose down ``` 4. **查看日志** ```bash docker-compose logs -f ``` ### 方式二:使用 Docker 命令 1. **构建镜像** ```bash docker build -t streamlit-rteb . ``` 2. **运行容器** ```bash docker run -d -p 8501:8501 --name streamlit-rteb streamlit-rteb ``` 3. **停止容器** ```bash docker stop streamlit-rteb docker rm streamlit-rteb ``` ## 访问应用 部署成功后,在浏览器中访问: - **本地访问**: http://localhost:8501 - **局域网访问**: http://[服务器IP]:8501 ## 环境变量 可以通过环境变量自定义配置: ```bash # 设置端口 export STREAMLIT_SERVER_PORT=8501 # 设置地址 export STREAMLIT_SERVER_ADDRESS=0.0.0.0 # 设置 Python 路径 export PYTHONPATH=/app ``` ## 健康检查 应用内置了健康检查机制: - 检查间隔:30秒 - 超时时间:10秒 - 重试次数:3次 - 启动等待时间:40秒 ## 故障排除 ### 1. 端口被占用 如果 8501 端口被占用,可以修改端口映射: ```bash docker run -d -p 8502:8501 --name streamlit-rteb streamlit-rteb ``` ### 2. 构建失败 检查 Dockerfile 和依赖文件是否正确: ```bash docker build --no-cache -t streamlit-rteb . ``` ### 3. 应用无法启动 查看容器日志: ```bash docker logs streamlit-rteb ``` ## 开发模式 如果需要开发调试,可以挂载本地目录: 1. **修改 docker-compose.yml** ```yaml volumes: - ./app:/app/app - ./utils:/app/utils - ./app.py:/app/app.py ``` 2. **重新启动服务** ```bash docker-compose up --build ``` ## 性能优化 1. **使用多阶段构建**(可选) 2. **启用缓存**:Docker 会自动缓存构建层 3. **优化镜像大小**:使用 slim 基础镜像 ## 安全建议 1. **生产环境**:使用非 root 用户运行 2. **网络安全**:配置防火墙规则 3. **镜像安全**:定期更新基础镜像 4. **依赖安全**:定期更新 Python 依赖包