266 lines
5.8 KiB
Markdown
Executable File
266 lines
5.8 KiB
Markdown
Executable File
# 🎨 Selenium Vue 前端项目
|
||
|
||
基于 Vue.js 3 + Vite 的现代前端应用,支持 Docker 一键部署。
|
||
|
||
## ✨ 特性
|
||
|
||
- 🎨 Vue.js 3 + Vite 现代前端框架
|
||
- 🐳 Docker 单镜像部署
|
||
- 📱 响应式设计
|
||
- 🔄 任务管理系统
|
||
- ⚙️ 灵活的 API 配置
|
||
- 🚀 Nginx 高性能静态文件服务
|
||
|
||
## 🚀 快速部署
|
||
|
||
### 方法一:一键部署(推荐)
|
||
|
||
```bash
|
||
# 默认部署(端口3080,连接本地API)
|
||
./build-and-deploy.sh
|
||
|
||
# 自定义端口部署
|
||
./build-and-deploy.sh latest 8080
|
||
|
||
# 指定后端API地址
|
||
./build-and-deploy.sh latest 8091 "https://47.83.141.164:8002"
|
||
```
|
||
|
||
**参数说明:**
|
||
- 参数1: 镜像标签(默认: latest)
|
||
- 参数2: 前端端口(默认: 3080)
|
||
- 参数3: API基础URL(默认: http://localhost:8000/api)
|
||
|
||
### 方法二:手动部署
|
||
|
||
# 停止并删除当前容器
|
||
docker stop selenium-vue-app
|
||
docker rm selenium-vue-app
|
||
|
||
|
||
# 1. 构建镜像(支持自定义API地址)
|
||
docker build \
|
||
--build-arg VITE_API_BASE_URL=https://47.83.141.164:8002 \
|
||
-t selenium-vue-app .
|
||
|
||
# 2. 运行容器
|
||
docker run -d \
|
||
--name selenium-vue-app \
|
||
-p 8091:8091 \
|
||
--restart unless-stopped \
|
||
selenium-vue-app
|
||
|
||
## ⚙️ 配置说明
|
||
|
||
### 构建时变量(ARG)
|
||
- `VITE_API_BASE_URL`: 后端API地址(默认: http://localhost:8000/api)
|
||
|
||
### 运行时环境变量
|
||
- `PORT`: nginx监听端口(默认: 80)
|
||
- `NGINX_SERVER_NAME`: nginx server_name(默认: localhost)
|
||
|
||
### 运行时端口
|
||
- 容器内端口: 80(nginx默认端口)
|
||
- 宿主机端口: 可自定义(如3080、8080等)
|
||
|
||
## 📱 访问应用
|
||
|
||
部署完成后,根据配置的端口访问应用:
|
||
- 本地访问: http://localhost:3080
|
||
- 服务器访问: http://服务器IP:端口
|
||
|
||
## 🌐 生产环境部署
|
||
|
||
### 连接远程API
|
||
```bash
|
||
# 构建时指定生产API地址
|
||
./build-and-deploy.sh prod 80 "https://47.83.141.164:37891"
|
||
```
|
||
|
||
### 使用标准HTTP端口
|
||
```bash
|
||
# 使用80端口(需要root权限或端口转发)
|
||
./build-and-deploy.sh prod 80 "https://47.83.141.164:37891"
|
||
```
|
||
|
||
### Nginx反向代理配置
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name yourdomain.com;
|
||
|
||
location / {
|
||
proxy_pass http://localhost:3080;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
}
|
||
}
|
||
```
|
||
|
||
## 🛠 本地开发
|
||
|
||
```bash
|
||
# 进入前端目录
|
||
cd frontend-vite
|
||
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 启动开发服务器
|
||
npm run dev
|
||
|
||
# 构建生产版本
|
||
npm run build
|
||
```
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
selenium_vue/
|
||
├── frontend-vite/ # Vue.js 前端源码
|
||
│ ├── src/
|
||
│ │ ├── views/ # 页面组件
|
||
│ │ ├── api/ # API 接口
|
||
│ │ │ ├── client.js # API 客户端
|
||
│ │ │ └── config.js # API 配置
|
||
│ │ └── router/ # 路由配置
|
||
│ ├── public/ # 静态资源
|
||
│ ├── dist/ # 构建输出目录
|
||
│ └── package.json
|
||
├── Dockerfile # Docker 构建文件
|
||
├── build-and-deploy.sh # 一键部署脚本
|
||
└── README.md
|
||
```
|
||
|
||
## 📋 管理命令
|
||
|
||
```bash
|
||
# 查看应用日志
|
||
docker logs selenium-vue-app
|
||
|
||
# 查看实时日志
|
||
docker logs -f selenium-vue-app
|
||
|
||
# 进入容器
|
||
docker exec -it selenium-vue-app /bin/sh
|
||
|
||
# 重启应用
|
||
docker restart selenium-vue-app
|
||
|
||
# 停止应用
|
||
docker stop selenium-vue-app
|
||
|
||
# 删除容器
|
||
docker rm selenium-vue-app
|
||
|
||
# 删除镜像
|
||
docker rmi selenium-vue-app
|
||
```
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
|
||
1. **端口冲突**
|
||
```bash
|
||
# 检查端口占用
|
||
lsof -i :3080
|
||
|
||
# 使用其他端口
|
||
./build-and-deploy.sh latest 8080
|
||
```
|
||
|
||
2. **API连接失败**
|
||
```bash
|
||
# 检查API地址配置
|
||
docker logs selenium-vue-app
|
||
|
||
# 重新构建指定API地址
|
||
./build-and-deploy.sh latest 3080 "https://47.83.141.164:37891"
|
||
```
|
||
|
||
3. **构建失败**
|
||
```bash
|
||
# 清理 Docker 缓存
|
||
docker system prune -a
|
||
|
||
# 重新构建
|
||
docker build --no-cache -t selenium-vue-app .
|
||
```
|
||
|
||
4. **页面404错误**
|
||
- 检查 Vue Router 配置
|
||
- 确认 nginx 配置支持 history 模式
|
||
|
||
5. **Docker entrypoint 脚本错误**
|
||
- 确保使用最新的 Dockerfile
|
||
- 重新构建镜像以应用修复
|
||
|
||
## 💡 部署示例
|
||
|
||
### 开发环境
|
||
```bash
|
||
./build-and-deploy.sh dev 3080 "http://localhost:8000/api"
|
||
```
|
||
|
||
### 测试环境
|
||
```bash
|
||
./build-and-deploy.sh test 8080 "https://47.83.141.164:37891"
|
||
```
|
||
|
||
### 生产环境
|
||
```bash
|
||
./build-and-deploy.sh prod 80 "https://47.83.141.164:37891"
|
||
```
|
||
|
||
## 🚀 项目压缩与传输
|
||
|
||
### 创建无Mac隐藏文件的压缩包
|
||
```bash
|
||
cd "/Users/natalie/Documents/聚流沙项目代码"
|
||
COPYFILE_DISABLE=1 tar --exclude='*.DS_Store' --exclude='*._*' --exclude='*.Spotlight-V100' --exclude='*.Trashes' --exclude='*__MACOSX*' --exclude='*.fseventsd' --exclude='*.DocumentRevisions-V100' --exclude='*.TemporaryItems' -czf selenium_vue_project.tar.gz selenium_vue/
|
||
```
|
||
|
||
### 服务器部署步骤
|
||
|
||
1. **上传代码到服务器**
|
||
```bash
|
||
scp selenium_vue_project.tar.gz user@server:/opt/
|
||
```
|
||
|
||
2. **解压并部署**
|
||
```bash
|
||
tar -xzf selenium_vue_project.tar.gz
|
||
cd selenium_vue
|
||
chmod +x build-and-deploy.sh
|
||
./build-and-deploy.sh
|
||
```
|
||
|
||
3. **配置防火墙**
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo ufw allow 3080/tcp
|
||
|
||
# CentOS/RHEL
|
||
sudo firewall-cmd --permanent --add-port=3080/tcp
|
||
sudo firewall-cmd --reload
|
||
```
|
||
|
||
## 🔄 更新日志
|
||
|
||
### v1.1 (最新)
|
||
- 修复了Docker entrypoint脚本的引号转义问题
|
||
- 添加了settings导出修复,解决构建错误
|
||
- 完善了项目压缩方法,避免Mac隐藏文件
|
||
- 简化了Dockerfile文件名为标准的 `Dockerfile`
|
||
|
||
### v1.0
|
||
- 初始版本发布
|
||
- 支持Docker一键部署
|
||
- Vue.js 3 + Vite 前端框架
|
||
|
||
## 📄 许可证
|
||
|
||
[MIT License](LICENSE) |