Blossom的部署

Blossom 依赖 JDK8 + MySQL8

【可选】拉取 MySQL 镜像并启动,如果已安装数据库,可以跳过该步骤。

docker pull mysql:8.0.31

启动镜像,注意挂载路径,否则容器删除后数据将丢失。

docker run \
-d \
--name mysql \
#【可选修改】数据库 root 用户的密码 
-e MYSQL_ROOT_PASSWORD=jasmine888 \
-p 3306:3306 \
#【需修改】挂载数据库文件保存路径。 
# 注意:只需要将冒号前的路径改为你 Docker 所在设备的某个路径,不要修改冒号后面的内容。 
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql-files/log:/var/lib/mysql-files \
-v /usr/local/docker/mysql/log:/var/log/mysql \
mysql:8.0.31

注意:如果命令错误:1. 请将命令中的注释删除。2. 将每一行后的斜杠\删除。3. 将所有命令写为一行。

附加:如何在 Docker 中创建数据库。

一、进入容器,如果你的容器不叫 mysql,需要把下方的 mysql 改为你的容器名

docker exec -it mysql /bin/bash

二、登录 mysql,将下方 -p 后的 xzzz 修改为你的数据库密码

mysql -uroot -pxzzz

三、创建数据库

CREATE DATABASE blossom  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

提示以下内容则创建成功

Query OK, 1 row affected

拉取应用镜像

docker pull jasminexzzz/blossom:latest

启动应用容器,注意修改其中标识的内容

docker run -d \
# 容器名称
--name blossom-backend \
# 指定端口映射
-p 9999:9999 \
#【需修改】挂载图片保存路径,如果是 windows 环境,可以使用 /c/home/bl/ 来指定磁盘
# 注意:只需要将冒号前的路径改为你 Docker 所在设备的某个路径,不要修改冒号后面的内容。
-v /home/bl/:/home/bl/ \
# 启动的镜像名称
jasminexzzz/blossom:latest \
#【需修改】配置数据库访问地址
--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

以上配置是官方信息,下面是自建实例配置(关键信息已隐藏):

docker run -d --name blossom-backend -p 9999:9999 -v /www/wwwroot/note/pic:/home/bl/ jasminexzzz/blossom:latest --spring.datasource.url="jdbc:mysql://172.17.0.3:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" --spring.datasource.username=root --spring.datasource.password=XXXXXX

警告:注意修改配置项 -v /home/bl/:/home/bl/ 的文件挂载路径,否则容器删除的同时会删除保存的图片信息

查看配置项是否正确

输入以下命令,在容器日志中查看你修改后的配置项是否正常生效:

docker logs blossom-backend

或者直接访问

例如部署在本地,则可以访问127.0.0.1:9999,如果返回以下内容,则说明部署成功。以下内容是提示没有登录,现在可以使用客户端登录使用。

{
  "code": "AUTH-40101",
  "msg": "无效的授权信息",
  "ex": "无效的授权信息",
  "data": null
}

访问

例如 IP:端口为:192.168.11.11:9999,则访问

http://192.168.11.11:9999/editor/#/settingindex

反向代理

因为路径中带有#,这是不被允许的,# 符号在URL中被称为“片段标识符”(fragment identifier)。它通常用于指示浏览器滚动到页面的特定部分或在单页应用(SPA)中显示特定的视图或组件。由于#及其后面的部分在发送到服务器时不会被包含在HTTP请求中,因此你不能直接在Nginx或其他任何服务器端配置中捕获或重定向它。

所以我选择了解析两个域名,建立一个中间站,在index.html中写上能打开网页A,就自动无感打开网页B的部分:

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>Direct Jump to Another Page</title>  
    <script>  
        // 立即执行函数,确保在DOM加载之前就开始跳转  
        (function() {  
            // 替换为你的目标URL  
            var targetUrl = 'https://note2.quanquan.site/editor/#/settingindex';  
            // 直接跳转到目标URL  
            window.location.href = targetUrl;  
        })();  
    </script>  
</head>  
<body>  
    <!-- 由于JavaScript会立即执行跳转,所以这里的内容通常不会被用户看到 -->  
    <p>如果你看到了这行文字,说明JavaScript跳转没有立即执行。</p>  
</body>  
</html>

其实不用这一步也可以,只是因为就算部署了域名,访问仍然要添加后面的/editor/#/settingindex部分,我觉得颇为麻烦,于是建立了一个中间站,用来自动跳转到目标网页。因为是直接跳转目标URL,就类似手动输入,就不涉及到#的发送请求了。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
颜文字
Emoji
小恐龙
花花
上一篇
下一篇