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