wecom-dashboards/deploy/NO-COMPOSE.md

205 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 不使用 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` 是否可用
- 创建自动化部署脚本
- 提供完整的手动命令清单