docs: Update the docker deployment document

This commit is contained in:
xiaozzzi 2024-01-16 17:07:20 +08:00
parent f19b9b8eea
commit f1e5dc5577
8 changed files with 1 additions and 205 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

View File

@ -7,7 +7,6 @@ docker
├─ build 镜像构建 ├─ build 镜像构建
| └─ Dockerfile 应用镜像构建脚本 | └─ Dockerfile 应用镜像构建脚本
└─ compose docker compose 配置 └─ compose docker compose 配置
├─ blossom.yaml 包含后台应用 Blossom-backend
└─ blossom-mysql8.yaml 包含后台应用 Blossom-backend 与 MySql8 └─ blossom-mysql8.yaml 包含后台应用 Blossom-backend 与 MySql8
``` ```
@ -68,12 +67,6 @@ docker run -d \
-v /home/bl/:/home/bl/ \ -v /home/bl/:/home/bl/ \
# 启动的镜像名称 # 启动的镜像名称
jasminexzzz/blossom:latest \ jasminexzzz/blossom:latest \
# 使用的后台配置文件,不需要修改
--spring.profiles.active=prod \
# 配置图片上传后对应生成的访问URL需要以/pic/结尾。注意该访问URL需要与访问后台的域名和端口相同
--project.iaas.blos.domain="http://127.0.0.1:9999/pic/" \
# 配置图片保存的磁盘路径,请使用 -v 将该路径挂载为本地路径,如上方示例
--project.iaas.blos.default-path="/home/bl/img/" \
# 配置数据库访问地址 # 配置数据库访问地址
--spring.datasource.url="jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \ --spring.datasource.url="jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \
# 配置数据库用户名 # 配置数据库用户名
@ -92,55 +85,7 @@ docker run -d --name blossom-backend -p 9999:9999 -v /home/bl/:/home/bl/ jasmine
可以使用 docker compose 单独拉取应用镜像,或者连同 MySQL 一起拉取构建。下列示例均可在项目`/docker/compose`目录下查看 可以使用 docker compose 单独拉取应用镜像,或者连同 MySQL 一起拉取构建。下列示例均可在项目`/docker/compose`目录下查看
## 1. 只拉取应用镜像示例 ## 1. 拉取应用镜像与 MySQL 镜像示例
该 docker compose 不包含 MySQL需要你自行安装 MySQL并在 MySQL 中先创建一个数据库数据库名称需要与启动容器命令中参数SPRING_DATASOURCE_URL配置的数据库名称相同如果不需要自定义数据库名称你可以直接使用如下语句创建数据库
```sql
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
```
docker compose 文件示例
```yml
version: "3.8"
services:
blossom:
image: jasminexzzz/blossom:latest
container_name: blossom-backend
volumes:
# 【需修改】挂载图片保存路径如果是windows环境可以使用/c/home/bl/来指定磁盘
- /d/blossom/bl/:/home/bl/
environment:
SPRING_PROFILES_ACTIVE: prod
# 【需修改】配置数据库访问地址
SPRING_DATASOURCE_URL: jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8
# 【需修改】配置数据库用户名
SPRING_DATASOURCE_USERNAME: root
# 【需修改】配置数据库密码
SPRING_DATASOURCE_PASSWORD: jasmine888
# 【需修改】配置图片上传后对应生成的访问 URL需要以/pic/结尾。注意,该访问 URL 需要与访问后台的域名和端口相同
PROJECT_IAAS_BLOS_DOMAIN: http://localhost:9999/pic/
# 配置图片保存的磁盘路径,并在 volumes 中将该路径挂载为本地路径,如上方 volumes 中的示例
PROJECT_IAAS_BLOS_DEFAULT-PATH: /home/bl/img/
ports:
- "9999:9999"
restart: always
```
启动不含有 MYSQL 的 Docker Compose
```bash
docker compose -f docker/compose/blossom.yaml up -d
```
> 该方式与使用公共镜像基本相同
---
## 2. 拉取应用镜像与 MySQL 镜像示例
该 docker compose 包含 MySQLMySQL 容器在初始化时会自动创建数据库 Blossom但你需要挂载 MySQL 文件到宿主机,防止数据丢失。 该 docker compose 包含 MySQLMySQL 容器在初始化时会自动创建数据库 Blossom但你需要挂载 MySQL 文件到宿主机,防止数据丢失。
@ -160,17 +105,12 @@ services:
# 【需修改】挂载图片保存路径如果是windows环境可以使用/c/home/bl/img/来指定磁盘 # 【需修改】挂载图片保存路径如果是windows环境可以使用/c/home/bl/img/来指定磁盘
- /d/blossom/bl/:/home/bl/ - /d/blossom/bl/:/home/bl/
environment: environment:
SPRING_PROFILES_ACTIVE: prod
# 配置数据库访问地址 # 配置数据库访问地址
SPRING_DATASOURCE_URL: jdbc:mysql://blmysql:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8 SPRING_DATASOURCE_URL: jdbc:mysql://blmysql:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8
# 【需修改】配置数据库用户名 # 【需修改】配置数据库用户名
SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_USERNAME: root
# 【需修改】配置数据库密码 # 【需修改】配置数据库密码
SPRING_DATASOURCE_PASSWORD: jasmine888 SPRING_DATASOURCE_PASSWORD: jasmine888
# 【需修改】配置图片上传后对应生成的访问 URL需要以/pic/结尾。注意,该访问域名(IP:端口)需要与访问后台的域名(IP:端口)相同
PROJECT_IAAS_BLOS_DOMAIN: http://localhost:9999/pic/
# 配置图片保存的磁盘路径,并在 volumes 中将该路径挂载为本地路径,如上方 volumes 中的示例
PROJECT_IAAS_BLOS_DEFAULT-PATH: /home/bl/img/
ports: ports:
- "9999:9999" - "9999:9999"
networks: networks:
@ -218,127 +158,6 @@ services:
docker compose -f docker/compose/blossom-mysql8.yaml up -d docker compose -f docker/compose/blossom-mysql8.yaml up -d
``` ```
# 三、使用 Dockerfile 构建应用镜像
> 该方式构建镜像只包含后台应用,不包含数据库在内
## 1. 后台工程打包
需要安装如下工具
- Docker 运行环境
- git 运行环境
- Maven 3.6.1+
克隆代码仓库,然后进入到`blossom-backend/`目录下,运行如下命令编译打包后台工程
```bash
git clone https://github.com/blossom-editor/blossom.git
maven clean package
```
打包成功如下图:
![backend_package](../doc/imgs/deploy/backend_package.png)
进入到`blossom-backend\backend\target`路径下检查是否包含`backend-blossom.jar`文件,如果包含则打包成功。
## 2. 构建本地镜像
进入到项目根目录下,运行如下命令
```bash
docker build -t <自定义前缀>/<自定义镜像名称>:<自定义镜像标签> -f docker/build/Dockerfile .
# 示例1
docker build -t self/blossom:self -f docker/build/Dockerfile .
```
> [!WARNING]
> 注意:一定要在项目根目录下运行`docker build`命令,否则无法找到后台 jar 包文件
> [!NOTE]
> 在后台项目`blossom-backend\`路径下也包含一个 Dockerfile 文件,只有构建命令略有不同,具体参阅`blossom-backend\README.md`文件
## 3. 创建数据库
你需要在 MySQL 中先创建一个数据库,数据库名称需要与启动容器命令中参数--spring.datasource.url配置的数据库名称相同如果不需要自定义数据库名称你可以直接使用如下语句创建数据库
```sql
CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
```
## 4. 启动容器
```bash
docker run -d \
# 容器名称
--name blossom-backend \
# 指定端口映射
-p 9999:9999 \
# 挂载图片保存路径如果是windows环境可以使用/c/home/bl/来指定磁盘
-v /home/bl/:/home/bl/ \
# 启动的镜像名称
jasminexzzz/blossom:latest \
# 使用的后台配置文件,不需要修改
--spring.profiles.active=prod \
# 配置图片上传后对应生成的访问URL需要以/pic/结尾。注意该访问URL需要与访问后台的域名和端口相同
--project.iaas.blos.domain="http://127.0.0.1:9999/pic/" \
# 配置图片保存的磁盘路径,请使用 -v 将该路径挂载为本地路径,如上方示例
--project.iaas.blos.default-path="/home/bl/img/" \
# 配置数据库访问地址
--spring.datasource.url="jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \
# 配置数据库用户名
--spring.datasource.username=root \
# 配置数据库密码
--spring.datasource.password=jasmine888
```
# 四、使用 Idea Cloud Toolkit 插件部署
> 该部署方式适合修改代码后部署在物理机器中。
在 Idea 中安装插件
![idea_plugin1](../doc/imgs/deploy/idea_plugin1.png)
配置目标机器地址
![idea_plugin1](../doc/imgs/deploy/idea_plugin2.png)
![idea_plugin1](../doc/imgs/deploy/idea_plugin3.png)
新增启动项
![idea_plugin1](../doc/imgs/deploy/idea_plugin4.png)
配置启动项
![idea_plugin1](../doc/imgs/deploy/idea_plugin5.png)
1. 需要上传的`jar`包地址
2. 目标机器的IP点击右侧+号添加
3. 上传到目标机器的路径
4. 上传后执行的命令,例如执行下方的重启脚本
5. 上传前执行的命令
重启脚本示例`restart-sprigboot.sh`
```bash
#!/dash
# 重启 blossom
pid=`ps aux | grep backend-blossom.jar | grep -v grep | awk '{print $2}'`
echo "进程ID : " $pid
kill -9 $pid
echo "进程" $pid "已被杀死"
echo "开始重启 backend-blossom 服务器"
# 注意修改对应路径
nohup java -Xms1024m -Xmx1024m -jar /usr/local/jasmine/blossom/backend/backend-blossom.jar &
echo "backend-blossom 正在启动,请查看日志 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓"
```

View File

@ -1,23 +0,0 @@
version: "3.8"
services:
blossom:
image: jasminexzzz/blossom:latest
container_name: blossom-backend
volumes:
# 【需修改】挂载图片保存路径如果是windows环境可以使用/c/home/bl/img/来指定磁盘
- /d/blossom/bl/:/home/bl/
environment:
SPRING_PROFILES_ACTIVE: prod
# 【需修改】配置数据库访问地址
SPRING_DATASOURCE_URL: jdbc:mysql://192.168.31.99:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8
# 【需修改】配置数据库用户名
SPRING_DATASOURCE_USERNAME: root
# 【需修改】配置数据库密码
SPRING_DATASOURCE_PASSWORD: jasmine888
# 【需修改】配置图片上传后对应生成的访问 URL需要以/pic/结尾。注意,该访问 URL 需要与访问后台的域名和端口相同
PROJECT_IAAS_BLOS_DOMAIN: http://localhost:9999/pic/
# 配置图片保存的磁盘路径,并在 volumes 中将该路径挂载为本地路径,如上方 volumes 中的示例
PROJECT_IAAS_BLOS_DEFAULT-PATH: /home/bl/img/
ports:
- "9999:9999"
restart: always