Skip to content

Commit

Permalink
1.0.6 版本发布
Browse files Browse the repository at this point in the history
  • Loading branch information
BeardedManZhao committed Dec 9, 2024
1 parent 9ac8ede commit 4e3c78f
Show file tree
Hide file tree
Showing 6 changed files with 193 additions and 86 deletions.
27 changes: 24 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# 使用官方提供的 jdk 基础镜像
FROM openjdk:17-jdk
# 使用基础的 Linux 环境
FROM ubuntu

# 设置 Locale 为 zh_CN.UTF-8
RUN apt-get update && \
apt-get install -y locales && \
locale-gen zh_CN.UTF-8 && \
update-locale LANG=zh_CN.UTF-8

# 安装中文字体
RUN apt-get install -y fonts-wqy-zenhei

# 设置环境变量
ENV LANG=zh_CN.UTF-8 \
LANGUAGE=zh_CN:zh \
LC_ALL=zh_CN.UTF-8

# 复制本地 JDK 目录到 Docker 容器
COPY ./jdk-17.0.12 /usr/lib/jvm/jdk-17.0.12

# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/jdk-17.0.12
ENV PATH=$JAVA_HOME/bin:$PATH

# 将本地包复制到Docker容器的 /usr/local/springboot/ 目录下
COPY ./diskMirror-backEnd-spring-boot.jar /usr/local/springboot/diskMirror-backEnd-spring-boot.jar
Expand All @@ -11,4 +32,4 @@ EXPOSE 8080
VOLUME /usr/local/springboot/conf

# 设置启动命令
CMD java -Dspring.config.location=/usr/local/springboot/conf/diskMirror-backEnd-spring-boot.yaml -jar /usr/local/springboot/diskMirror-backEnd-spring-boot.jar data
CMD ["java", "-Dspring.config.location=/usr/local/springboot/conf/diskMirror-backEnd-spring-boot.yaml", "-jar", "/usr/local/springboot/diskMirror-backEnd-spring-boot.jar", "data"]
115 changes: 70 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,33 @@

![image](https://github.com/BeardedManZhao/diskMirror-docker/assets/113756063/1c8c6c62-c23c-4aea-83e1-585e4f0d8fb5)

## 获取项目
镜像地址:https://hub.docker.com/r/beardedmanzhao/diskmirror-docker

## 自动拉取镜像(推荐)

`1.0.6` 以及之后的版本 diskMirror-docker 项目中,我们还可以直接通过 `docker pull` 命令来拉取镜像,然后启动镜像,这样您就可以直接使用镜像了!下面是一个示例

```shell
docker pull diskmirror-docker

# 将您的yaml配置文件移动到被盘镜使用的本地磁盘目录下
mv ./diskMirror-backEnd-spring-boot.yaml <yaml配置文件所在的本地磁盘目录路径>
# <给盘镜使用的本地磁盘路径> 代表的就是您在本地磁盘上需要给盘镜使用的磁盘路径 这个路径是您的宿主机的
# <配置文件所在的本地磁盘路径 xxx.yaml> 代表的就是您要用于存储盘镜配置文件的路径!这个路径是您的宿主机的
# <yaml中的 disk-mirror.root-dir的值> 代表的就是您的盘镜的根目录,存储数据的时候,会自动在此目录下存储数据,在下面的命令中就是使用了卷的方式实现了目录的映射 这个路径是您的容器的
docker run -d -p 8080:8080 --name diskmirror-docker \
-v <yaml 配置文件所在的本地磁盘目录路径>:/usr/local/springboot/conf \
-v <给盘镜使用的本地磁盘目录路径>:<yaml中的 disk-mirror.root-dir的值> \
beardedmanzhao/diskmirror-docker:<您的docker版本号>
```

到这里操作就算是成功了!这样的方法相较于手动部署要方便且快捷,但如果您没有办法访问到 docker 仓库,您只能使用手动部署了 /(ㄒoㄒ)/~~

## 手动部署(无 docker 仓库访问网络可用)

如果您没有 docker 仓库访问网络,您可以前往 [diskMirror-docker 软件包仓库](https://github.com/BeardedManZhao/diskMirror-docker.git) 下载源码并按照这里的文档操作!

### 下载项目

这个项目是 diskMirror-spring-boot 镜像版本的项目,您可以使用下面的命令将此项目编译为一个镜像!

Expand All @@ -16,62 +42,56 @@ cd diskMirror-docker

然后等待下载,下载完毕之后,就开始进行 yaml 的配置!

## 编译镜像
### 编译镜像

### 运行脚本进行镜像自动装载
#### 运行脚本进行镜像自动装载

在旧版本中 yaml 配置结束,回到 script 打开的窗口,直接回车开始编译就可以啦!请确保期间无错误信息哦!

`>=1.0.2` 版本 yaml 配置时,回到窗口不需要回车,它会继续编译,当编译完成,就会如下面所示!

> 默认版本号一直会变哦,会逐渐的使用最新的版本!在这里显示的 `20xx.xx.xx` 就是版本号,实际操作中根据你的配置会有不同的变化!
`>=1.0.6` 版本中,允许脚本将全程不需要用户操作,全自动化流程! 下面是一个执行编译镜像的示例

```
docker 镜像安装脚本版本:1.0.2
请输入需要的版本:
"正在下载版本:2024.04.13"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 2940 100 2940 0 0 2374 0 0:00:01 0:00:01 --:--:-- 0
您现在可以修改 diskMirror-backEnd-spring-boot.yaml 文件,并拷贝到您宿主机的某个目录下,然后耐心等待
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 72.0M 100 72.0M 0 0 1664k 0 0:00:44 0:00:44 --:--:-- 3206k
F:\MyGithub\diskMirror-docker>script.bat
正在开始编译,请耐心等待!
[+] Building 16.8s (7/7) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 557B 0.0s
=> [internal] load metadata for docker.io/library/openjdk:17-jdk 15.4s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 52B 0.0s
=> [internal] load build context 1.3s
=> => transferring context: 75.57MB 1.3s
=> [1/2] FROM docker.io/library/openjdk:17-jdk@sha256:74bad65c9e59d6410bdd67d71a14e14175ddd33d654419ecfabf03ddbe 0.0s
=> CACHED [2/2] COPY ./diskMirror-backEnd-spring-boot.jar /usr/local/springboot/diskMirror-backEnd-spring-boot.j 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:ad4ae22e2810d2008ef903e9ab429f1cfcf1ab472a6058de9d4d5004ab594efd 0.0s
=> => naming to docker.io/library/diskmirror-backend-spring-boot:2024.04.13 0.0s
View build details: docker-desktop://dashboard/build/default/default/r1zo8nzuzvx5q5kjgsyhf7xwa
What's Next?
1. Sign in to your Docker account → docker login
2. View a summary of image vulnerabilities and recommendations → docker scout quickview
latest: Pulling from library/ubuntu
Digest: sha256:80dd3c3b9c6cecb9f1667e9290b3bc61b78c2678c02cbdae5f0fea92cc6734ab
Status: Image is up to date for ubuntu:latest
docker.io/library/ubuntu:latest
What's next:
View a summary of image vulnerabilities and recommendations → docker scout quickview ubuntu:latest
[+] Building 0.2s (8/8) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 752B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:latest 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 52B 0.0s
=> [1/3] FROM docker.io/library/ubuntu:latest 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 26.22kB 0.0s
=> CACHED [2/3] COPY ./jdk-17.0.12 /usr/lib/jvm/jdk-17.0.12 0.0s
=> CACHED [3/3] COPY ./diskMirror-backEnd-spring-boot.jar /usr/local/springboot/diskMirror-backEnd-spring-boot.jar 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:fc0ef80cfb4e1ddeb6b28a43912395b32d050b50ce767f6f8e34e4387f3b6602 0.0s
=> => naming to docker.io/beardedmanzhao/diskmirror-docker:2024.12.05 0.0s
What's next:
View a summary of image vulnerabilities and recommendations → docker scout quickview
安装脚本操作完毕,若过程无错误则代表安装成功,请您回到这里按下回车!
启动时:容器中的 /usr/local/springboot/diskMirror-backEnd-spring-boot.yaml 会做为配置文件,您可以进行路径映射哦!
请按任意键继续. . .
```

### 查看 docker 中的镜像列表是否存在 `diskmirror-backend-spring-boot`
#### 查看 docker 中的镜像列表是否存在 `beardedmanzhao/diskmirror-docker`

如果存在,则说明编译成功,否则编译失败,请您检查网络连接,或者重新下载源码包,也可以联系作者。

```
G:\MyGithub\diskMirror-docker>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diskmirror-backend-spring-boot 2024.04.12 96d6ca20d054 3 minutes ago 546MB
C:\Users\zhao>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
beardedmanzhao/diskmirror-docker 2024.12.05 b54c66d9e7e0 9 minutes ago 476MB
ubuntu latest b1d9df8ab815 2 weeks ago 78.1MB
```

## 镜像启动
Expand All @@ -89,7 +109,7 @@ diskmirror-backend-spring-boot 2024.04.12 96d6ca20d054 3 minutes ago 546
# 将您的yaml配置文件移动到被盘镜使用的本地磁盘目录下
mv ./diskMirror-backEnd-spring-boot.yaml <yaml配置文件所在的本地磁盘目录路径>
# 启动镜像
docker run -d -p 8080:8080 --name diskmirror-docker -v <yaml配置文件所在的本地磁盘目录路径>:/usr/local/springboot/conf diskmirror-backend-spring-boot:<您的docker版本号>
docker run -d -p 8080:8080 --name diskmirror-docker -v <yaml配置文件所在的本地磁盘目录路径>:/usr/local/springboot/conf beardedmanzhao/diskmirror-docker:<您的docker版本号>
```

因此我们可以使用 卷 的方式来实现数据的持久化,下面是一个示例,您按照命令的提示来操作就可以啦!
Expand All @@ -103,14 +123,14 @@ mv ./diskMirror-backEnd-spring-boot.yaml <yaml配置文件所在的本地磁盘
docker run -d -p 8080:8080 --name diskmirror-docker \
-v <yaml 配置文件所在的本地磁盘目录路径>:/usr/local/springboot/conf \
-v <给盘镜使用的本地磁盘目录路径>:<yaml中的 disk-mirror.root-dir的值> \
diskmirror-backend-spring-boot:<您的docker版本号>
beardedmanzhao/diskmirror-docker:<您的docker版本号>
```

下面是一个示例

```shell
mv ./diskMirror-backEnd-spring-boot.yaml C:\Users\zhao\Downloads\conf
docker run -d -p 8080:8080 --name diskmirror-docker -v C:\Users\zhao\Downloads\conf:/usr/local/springboot/conf -v G:\DiskMirror:/DiskMirror diskmirror-backend-spring-boot:2024.04.13
docker run -d -p 8080:8080 --name diskmirror-docker -v C:\Users\zhao\Downloads\conf:/usr/local/springboot/conf -v F:\DiskMirror:/DiskMirror beardedmanzhao/diskmirror-docker:2024.12.05
```

### 桌面版本 docker 启动
Expand All @@ -122,6 +142,11 @@ docker run -d -p 8080:8080 --name diskmirror-docker -v C:\Users\zhao\Downloads\c

### 更新记录

#### 1.0.5 → 1.0.6

- 脚本不再需要用户手动输入版本号,会自动选择!
- 镜像支持直接 `docker pull` 命令来拉取镜像

#### 1.0.4 → 1.0.5

- 同步 `diskmirror-backend-spring-boot:2024.11.02` 版本信息!
Expand Down
Binary file added diskMirror-backEnd-spring-boot.jar
Binary file not shown.
92 changes: 92 additions & 0 deletions diskMirror-backEnd-spring-boot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
disk-mirror:
# 此配置项目代表的就是是否启用 diskMirror 如果设置为 false 则代表不启用,diskMirror 的starter 将不会被加载
enabled-feature: true
# 要使用的盘镜适配器类型 在这里默认数值是本地盘镜适配器,具体的适配器 您可以查阅 top.lingyuzhao.diskMirror.core.DiskMirror 类
adapter-type: "LocalFSAdapter"
# 要被盘镜管理的目录 用于存储数据的目录 此目录是真实目录
root-dir: "/DiskMirror"
# 一般来说 如果对接带第三方文件系统 而非本次文件系统 则此参数则会派上用场,其代表的就是第三方文件系统的地址
fs-default-fs: "hdfs://localhost:8020/"
# 当处理之后,如果处理无错误会返回一个结果状态,此数值代表的就是是否正确处理
ok-value: "ok!!!!"
# 返回结果的key 返回结果中 结果状态的字段名字
res-key: "res"
# 协议前缀,默认为http 不同协议前缀有不同的意义,用于拼接 url
protocol-prefix: ""
# 参数 可能会派上用场,在不同的适配器中有不同的实现
params: { }
# 用户磁盘配额 每个盘镜空间的磁盘最大空间数值,单位是字节
user-disk-mirror-space-quota: 1073741824
# 安全密钥
secure-key: ""
# 指定的几个用户的空间对应的容量
space-max-size: { }
# 指定后端服务器相关的配置
backend:
# 指定后端服务器的关机控制器
shutdown-controller:
# 这里代表是否要启用关机控制器
enable: true
# 这里代表的是关机控制器的操作密钥 此密钥独立于 diskMirror 可防止被其它用户关机
password: "zhao"
# 这里代表的是在关机之前预留的时间,一般是用来将关机的信息返回给客户端的 单位是毫秒
timeout: 5000
# 图像文件压缩模块配置
image-compress-module:
# 设置位 true 代表启用~ 反之则不启用 不启用的将不会被加载到 diskMirror 中
enable: true
# 设置 png 调色板模式 默认是 RGB_8 代表 8 位压缩
palette-png: "RGB_8"
# 设置 调色板生成器,默认是 X255
palette-generator: "X255"
# 设置是否支持透明 默认是 false
transparent: false
# 设置校验模块
verifications:
# 设置读取操作中的 sk 校验 这样所有的读取操作都需要经过这个模块了
- "SkCheckModule$read"
# 设置写入操作中的 sk 校验 这样所有的写入操作都需要经过这个模块了
- "SkCheckModule$writer"


# Spring Boot 配置文件
spring:
# mvc 配置
mvc:
resources:
cache:
# 设置缓存时间 这里是以秒为单位 代表的 1 小时
period: 3600
# cachecontrol 具有更多的配置,其中也包括 period 但是叫做 max-age 并且 通过 cachecontrol 配置的优先级更高
# 也就是说 在这里配置最后会直接覆盖掉 cache.period
# 一般来说 需要更详细的配置就需要在这里操作
cachecontrol:
# 设置缓存的过期时间 这是告诉浏览器此资源缓存 7200 秒
max-age: 7200
# 配置资源的对比策略,这里是使用的最后一次修改的时间
# 这个配置项在 spring 5.2.0 之后才支持
# 如果不配置此选项 默认的策略是 Last-Modified
# Last-Modified 的策略是根据资源的最后修改时间来判断资源是否被修改过
# 如果资源被修改过 则会返回 304 状态码
# 如果资源没有被修改过 则会返回 200 状态码
# 但是 Last-Modified 的策略存在一个问题,就是如果资源的最后修改时间被修改过,那么资源的最后修改时间也会被修改,这样就会导致资源的最后修改时间永远是当前时间。
# 这个配置项默认是 true
use-last-modified: true
# 配置 HTTP 多部分文件上传
servlet:
# 文件上传相关配置
multipart:
# 指定临时文件的存储位置
# 注意:此目录必须存在,并且应用程序应具有写入权限
location: /opt/app/diskMirror-spring-boot/temp
# 指定临时文件的位置(与location配置相同)
# 这个配置在较新版本的Spring中可能不是必需的
# temp-location: /opt/app/diskMirror-spring-boot/temp
# 单个文件的最大大小
max-file-size: 1024MB
# 整个请求中所有文件的总大小的最大值,默认值为多部分数据的最大大小
max-request-size: 1030MB
# 是否启用文件大小检查,默认为true
enabled: true
# 当文件大小超过这个阈值时,才会使用临时文件存储
file-size-threshold: 4MB
20 changes: 5 additions & 15 deletions script.bat
Original file line number Diff line number Diff line change
@@ -1,24 +1,14 @@
@echo off

echo docker 镜像安装脚本版本:1.0.5

set /P "version=请输入需要的版本:"

if "%version%" == "" (
set "version=2024.11.02"
)

echo "正在下载版本:%version%"

curl -o "./diskMirror-backEnd-spring-boot.yaml" --insecure -k -L "https://github.com/BeardedManZhao/diskMirror-backEnd-spring-boot/releases/download/%version%/application.yaml"
echo 正在开始编译,请耐心等待!

echo 您现在可以修改 diskMirror-backEnd-spring-boot.yaml 文件,并拷贝到您宿主机的某个目录下,然后耐心等待
echo 请手动解压 `jdk-17.0.12.zip` 文件!!然后按下回车

curl -o "./diskMirror-backEnd-spring-boot.jar" --insecure -k -L "https://github.com/BeardedManZhao/diskMirror-backEnd-spring-boot/releases/download/%version%/diskMirror-backEnd-spring-boot-1.0-SNAPSHOT.jar"
pause

echo 正在开始编译,请耐心等待!
docker pull ubuntu:latest

docker build -t diskmirror-backend-spring-boot:%version% .
docker build -t beardedmanzhao/diskmirror-docker:2024.12.05 .

echo 安装脚本操作完毕,若过程无错误则代表安装成功,请您回到这里按下回车!
echo 启动时:容器中的 /usr/local/springboot/diskMirror-backEnd-spring-boot.yaml 会做为配置文件,您可以进行路径映射哦!
Expand Down
Loading

0 comments on commit 4e3c78f

Please sign in to comment.