Browser-Use/Web-UI 项目 Docker 部署指南
2025-07-06 02:25:15作者:管翌锬
项目概述
Browser-Use/Web-UI 是一个基于浏览器的用户界面项目,通过 Docker 容器化部署,提供了多种大语言模型(LLM)API的集成能力,并支持浏览器调试和远程访问功能。本文将详细介绍如何使用 Docker Compose 部署该项目。
部署准备
在开始部署前,请确保系统已安装以下组件:
- Docker 20.10.0 或更高版本
- Docker Compose 2.0.0 或更高版本
核心服务配置
1. 基础服务定义
项目定义了一个名为 browser-use-webui
的服务,支持两种构建方式:
- 使用预编译镜像(注释状态)
- 本地构建(当前启用)
browser-use-webui:
build:
context: .
dockerfile: Dockerfile
args:
TARGETPLATFORM: ${TARGETPLATFORM:-linux/amd64}
2. 端口映射配置
服务暴露了多个端口,用于不同功能:
7788
: 主应用端口6080
: 可能是WebSocket或Web界面端口5901
: VNC服务端口9222
: 浏览器调试端口
ports:
- "7788:7788"
- "6080:6080"
- "5901:5901"
- "9222:9222"
环境变量详解
1. LLM API 配置
项目支持多种大语言模型API,包括但不限于:
- OpenAI
- Anthropic
- Azure OpenAI
- DeepSeek
- Ollama
- Mistral
- 阿里云
- 月之暗面
- Unbound
- SiliconFLOW
- IBM Watson
每种API都需要配置相应的端点(ENDPOINT)和密钥(API_KEY),例如:
- OPENAI_ENDPOINT=${OPENAI_ENDPOINT:-https://api.openai.com/v1}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
2. 应用设置
ANONYMIZED_TELEMETRY
: 匿名遥测数据收集开关BROWSER_USE_LOGGING_LEVEL
: 日志级别设置
3. 浏览器设置
BROWSER_DEBUGGING_PORT
: 浏览器调试端口USE_OWN_BROWSER
: 是否使用宿主机的浏览器KEEP_BROWSER_OPEN
: 是否保持浏览器常开BROWSER_CDP
: Chrome DevTools Protocol地址
4. 显示设置
DISPLAY
: X11显示设置PLAYWRIGHT_BROWSERS_PATH
: Playwright浏览器路径RESOLUTION
: 显示分辨率
5. VNC设置
VNC_PASSWORD
: VNC访问密码,默认值为"youvncpassword"
存储与资源配置
1. 卷挂载
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
# - ./my_chrome_data:/app/data/chrome_data # 可选: 持久化浏览器数据
2. 资源限制
shm_size
: 共享内存大小设置为2GBcap_add
: 添加SYS_ADMIN权限tmpfs
: 使用临时文件系统挂载/tmp目录
健康检查
配置了针对VNC端口的健康检查:
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "5901"]
interval: 10s
timeout: 5s
retries: 3
部署与运行
- 创建
.env
文件,配置必要的环境变量 - 运行以下命令启动服务:
docker-compose up -d
- 访问服务:
- 主应用:
http://localhost:7788
- VNC服务: 使用VNC客户端连接
localhost:5901
调试技巧
可以使用以下命令进入容器进行调试:
docker compose run --rm -it browser-use-webui bash
安全建议
- 务必修改默认的VNC密码
- 不要将API密钥直接写入docker-compose.yml文件,应使用环境变量文件(.env)
- 生产环境中应考虑限制可访问IP范围
常见问题
- 浏览器无法启动:检查SYS_ADMIN权限和共享内存设置
- VNC连接失败:确认健康检查通过,检查防火墙设置
- API调用失败:验证API密钥和端点配置是否正确
通过本文的详细配置说明,您应该能够顺利部署Browser-Use/Web-UI项目,并根据需要调整各项参数以满足特定场景的需求。