# 不使用 docker-compose 的部署方案

如果你没有安装 docker-compose，可以使用以下两种方式：

## 方式 1: 使用 Docker Compose V2（推荐）

Docker Desktop 和新版 Docker 已经内置了 Compose V2，命令是 `docker compose`（注意是空格，不是连字符）。

### 测试是否可用
```bash
docker compose version
```

如果可用，只需将所有 `docker-compose` 命令改为 `docker compose`：

```bash
# 启动服务
docker compose up -d

# 查看日志
docker compose logs -f

# 停止服务
docker compose down
```

## 方式 2: 使用纯 Docker 命令

如果 `docker compose` 也不可用，可以使用纯 Docker 命令手动启动容器。

### 1. 创建网络
```bash
docker network create wecom-network
```

### 2. 构建镜像

#### 构建后端镜像
```bash
cd deploy/backend
docker build -t wecom-backend:latest .
cd ../..
```

#### 构建前端镜像
```bash
cd deploy/frontend
docker build -t wecom-frontend:latest .
cd ../..
```

### 3. 启动容器

#### 启动后端容器
```bash
docker run -d \
  --name wecom-backend \
  --restart always \
  --network wecom-network \
  -p 8080:8080 \
  -v wecom-upload-data:/home/ruoyi/uploadPath \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e TZ=Asia/Shanghai \
  -e SPRING_DATASOURCE_URL="jdbc:mysql://host.docker.internal:3316/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
  -e SPRING_DATASOURCE_USERNAME=root \
  -e SPRING_DATASOURCE_PASSWORD=你的MySQL密码 \
  -e SPRING_REDIS_HOST=host.docker.internal \
  -e SPRING_REDIS_PORT=6379 \
  -e SPRING_REDIS_PASSWORD= \
  --add-host host.docker.internal:host-gateway \
  wecom-backend:latest
```

#### 启动前端容器
```bash
docker run -d \
  --name wecom-frontend \
  --restart always \
  --network wecom-network \
  -p 8081:80 \
  wecom-frontend:latest
```

### 4. 常用管理命令

```bash
# 查看运行中的容器
docker ps

# 查看所有容器（包括停止的）
docker ps -a

# 查看后端日志
docker logs -f wecom-backend

# 查看前端日志
docker logs -f wecom-frontend

# 停止容器
docker stop wecom-backend wecom-frontend

# 启动容器
docker start wecom-backend wecom-frontend

# 重启容器
docker restart wecom-backend wecom-frontend

# 删除容器
docker rm -f wecom-backend wecom-frontend

# 删除网络
docker network rm wecom-network

# 删除数据卷
docker volume rm wecom-upload-data
```

### 5. 更新部署

#### 更新后端
```bash
# 停止并删除旧容器
docker stop wecom-backend
docker rm wecom-backend

# 重新构建镜像
cd deploy/backend
docker build -t wecom-backend:latest .
cd ../..

# 启动新容器（使用上面的 docker run 命令）
docker run -d \
  --name wecom-backend \
  --restart always \
  --network wecom-network \
  -p 8080:8080 \
  -v wecom-upload-data:/home/ruoyi/uploadPath \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e TZ=Asia/Shanghai \
  -e SPRING_DATASOURCE_URL="jdbc:mysql://host.docker.internal:3316/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
  -e SPRING_DATASOURCE_USERNAME=root \
  -e SPRING_DATASOURCE_PASSWORD=你的MySQL密码 \
  -e SPRING_REDIS_HOST=host.docker.internal \
  -e SPRING_REDIS_PORT=6379 \
  -e SPRING_REDIS_PASSWORD= \
  --add-host host.docker.internal:host-gateway \
  wecom-backend:latest
```

#### 更新前端
```bash
# 停止并删除旧容器
docker stop wecom-frontend
docker rm wecom-frontend

# 重新构建镜像
cd deploy/frontend
docker build -t wecom-frontend:latest .
cd ../..

# 启动新容器
docker run -d \
  --name wecom-frontend \
  --restart always \
  --network wecom-network \
  -p 8081:80 \
  wecom-frontend:latest
```

## 方式 3: 使用部署脚本（最简单）

我可以为你创建一个 Shell 脚本，自动执行所有 Docker 命令。

### Windows (PowerShell)
创建 `deploy.ps1` 脚本

### Linux/Mac (Bash)
创建 `deploy.sh` 脚本

需要我创建这些脚本吗？

## 🔍 检查 Docker Compose 可用性

```bash
# 检查 docker-compose（旧版）
docker-compose --version

# 检查 docker compose（新版）
docker compose version

# 检查 Docker 版本
docker --version
```

## 📝 推荐方案

1. **最推荐**: 使用 `docker compose`（Docker Compose V2）
2. **次推荐**: 使用部署脚本（我可以帮你创建）
3. **备选**: 手动执行 docker 命令

你想使用哪种方式？我可以帮你：
- 测试 `docker compose` 是否可用
- 创建自动化部署脚本
- 提供完整的手动命令清单
