-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
123 lines (101 loc) · 3.55 KB
/
Copy pathMakefile
File metadata and controls
123 lines (101 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Light Browser Makefile
# 简化常用操作的 Makefile
.PHONY: help build start stop restart status logs test clean install
# 默认目标
.DEFAULT_GOAL := help
# 颜色定义
GREEN := \033[32m
YELLOW := \033[33m
RED := \033[31m
RESET := \033[0m
help: ## 显示帮助信息
@echo "$(GREEN)Light Browser 管理命令$(RESET)"
@echo ""
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " $(YELLOW)%-12s$(RESET) %s\n", $$1, $$2}' $(MAKEFILE_LIST)
install: ## 安装依赖和初始化环境
@echo "$(GREEN)初始化 Light Browser 环境...$(RESET)"
@if [ ! -f ".env" ]; then \
cp .env.example .env; \
echo "$(YELLOW)已创建 .env 文件,请根据需要修改配置$(RESET)"; \
fi
@mkdir -p logs
@echo "$(GREEN)环境初始化完成$(RESET)"
build: ## 构建 Docker 镜像
@echo "$(GREEN)构建 Light Browser 镜像...$(RESET)"
@docker-compose build --no-cache
@echo "$(GREEN)镜像构建完成$(RESET)"
start: ## 启动服务
@echo "$(GREEN)启动 Light Browser 服务...$(RESET)"
@docker-compose up -d
@echo "$(GREEN)服务启动完成$(RESET)"
@echo "访问地址:"
@echo " - noVNC: http://localhost:6080/vnc.html"
@echo " - CDP: ws://localhost:9222"
stop: ## 停止服务
@echo "$(YELLOW)停止 Light Browser 服务...$(RESET)"
@docker-compose down
@echo "$(GREEN)服务已停止$(RESET)"
restart: stop start ## 重启服务
status: ## 查看服务状态
@echo "$(GREEN)Light Browser 服务状态:$(RESET)"
@docker-compose ps
@echo ""
@echo "$(GREEN)端口监听状态:$(RESET)"
@netstat -tulpn 2>/dev/null | grep -E ":(9222|6080)" || echo "未检测到端口监听"
logs: ## 查看服务日志
@docker-compose logs -f
logs-tail: ## 查看最近的日志
@docker-compose logs --tail=50
test: ## 运行功能测试
@echo "$(GREEN)运行 Light Browser 功能测试...$(RESET)"
@python3 test_light_browser.py
test-install: ## 安装测试依赖
@echo "$(GREEN)安装测试依赖...$(RESET)"
@pip3 install loguru requests websocket-client
shell: ## 进入容器 shell
@docker-compose exec light-browser /bin/bash
clean: ## 清理资源
@echo "$(YELLOW)清理 Docker 资源...$(RESET)"
@docker-compose down -v --remove-orphans
@docker system prune -f
@echo "$(GREEN)清理完成$(RESET)"
clean-logs: ## 清理日志文件
@echo "$(YELLOW)清理日志文件...$(RESET)"
@rm -rf logs/*.log
@rm -rf test_light_browser_*.log
@echo "$(GREEN)日志清理完成$(RESET)"
backup: ## 备份配置文件
@echo "$(GREEN)备份配置文件...$(RESET)"
@tar -czf light-browser-backup-$(shell date +%Y%m%d_%H%M%S).tar.gz \
.env docker-compose.yml Dockerfile start.py
@echo "$(GREEN)备份完成$(RESET)"
update: ## 更新镜像
@echo "$(GREEN)更新 Light Browser...$(RESET)"
@docker-compose pull
@docker-compose build --no-cache
@echo "$(GREEN)更新完成$(RESET)"
monitor: ## 实时监控服务
@echo "$(GREEN)实时监控 Light Browser 服务...$(RESET)"
@while true; do \
clear; \
echo "$(GREEN)Light Browser 服务监控 - $(shell date)$(RESET)"; \
echo ""; \
docker-compose ps; \
echo ""; \
echo "$(GREEN)资源使用情况:$(RESET)"; \
docker stats --no-stream light-browser 2>/dev/null || echo "容器未运行"; \
echo ""; \
echo "$(GREEN)端口状态:$(RESET)"; \
netstat -tulpn 2>/dev/null | grep -E ":(9222|6080)" || echo "端口未监听"; \
echo ""; \
echo "按 Ctrl+C 退出监控"; \
sleep 5; \
done
dev: ## 开发模式启动(带日志输出)
@echo "$(GREEN)开发模式启动 Light Browser...$(RESET)"
@docker-compose up --build
# 快捷命令别名
up: start
down: stop
ps: status
rebuild: clean build start