diff --git a/Dockerfile b/Dockerfile index dd4242c..74983ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 @@ -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 \ No newline at end of file +CMD ["java", "-Dspring.config.location=/usr/local/springboot/conf/diskMirror-backEnd-spring-boot.yaml", "-jar", "/usr/local/springboot/diskMirror-backEnd-spring-boot.jar", "data"] \ No newline at end of file diff --git a/README.md b/README.md index 512cd56..6b37359 100644 --- a/README.md +++ b/README.md @@ -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 +# <给盘镜使用的本地磁盘路径> 代表的就是您在本地磁盘上需要给盘镜使用的磁盘路径 这个路径是您的宿主机的 +# <配置文件所在的本地磁盘路径 xxx.yaml> 代表的就是您要用于存储盘镜配置文件的路径!这个路径是您的宿主机的 +# 代表的就是您的盘镜的根目录,存储数据的时候,会自动在此目录下存储数据,在下面的命令中就是使用了卷的方式实现了目录的映射 这个路径是您的容器的 +docker run -d -p 8080:8080 --name diskmirror-docker \ +-v :/usr/local/springboot/conf \ +-v <给盘镜使用的本地磁盘目录路径>: \ +beardedmanzhao/diskmirror-docker:<您的docker版本号> +``` + +到这里操作就算是成功了!这样的方法相较于手动部署要方便且快捷,但如果您没有办法访问到 docker 仓库,您只能使用手动部署了 /(ㄒoㄒ)/~~ + +## 手动部署(无 docker 仓库访问网络可用) + +如果您没有 docker 仓库访问网络,您可以前往 [diskMirror-docker 软件包仓库](https://github.com/BeardedManZhao/diskMirror-docker.git) 下载源码并按照这里的文档操作! + +### 下载项目 这个项目是 diskMirror-spring-boot 镜像版本的项目,您可以使用下面的命令将此项目编译为一个镜像! @@ -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 ``` ## 镜像启动 @@ -89,7 +109,7 @@ diskmirror-backend-spring-boot 2024.04.12 96d6ca20d054 3 minutes ago 546 # 将您的yaml配置文件移动到被盘镜使用的本地磁盘目录下 mv ./diskMirror-backEnd-spring-boot.yaml # 启动镜像 -docker run -d -p 8080:8080 --name diskmirror-docker -v :/usr/local/springboot/conf diskmirror-backend-spring-boot:<您的docker版本号> +docker run -d -p 8080:8080 --name diskmirror-docker -v :/usr/local/springboot/conf beardedmanzhao/diskmirror-docker:<您的docker版本号> ``` 因此我们可以使用 卷 的方式来实现数据的持久化,下面是一个示例,您按照命令的提示来操作就可以啦! @@ -103,14 +123,14 @@ mv ./diskMirror-backEnd-spring-boot.yaml :/usr/local/springboot/conf \ -v <给盘镜使用的本地磁盘目录路径>: \ -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 启动 @@ -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` 版本信息! diff --git a/diskMirror-backEnd-spring-boot.jar b/diskMirror-backEnd-spring-boot.jar new file mode 100644 index 0000000..565049d Binary files /dev/null and b/diskMirror-backEnd-spring-boot.jar differ diff --git a/diskMirror-backEnd-spring-boot.yaml b/diskMirror-backEnd-spring-boot.yaml new file mode 100644 index 0000000..41cb604 --- /dev/null +++ b/diskMirror-backEnd-spring-boot.yaml @@ -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 \ No newline at end of file diff --git a/script.bat b/script.bat index 36a45c1..1dca3a6 100644 --- a/script.bat +++ b/script.bat @@ -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 ļijĿ¼£Ȼĵȴ +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 ΪļԽ·ӳŶ diff --git a/script.sh b/script.sh index 6380850..bfd8782 100644 --- a/script.sh +++ b/script.sh @@ -1,29 +1,8 @@ #!/bin/bash -echo "docker 镜像安装脚本版本:1.0.5" - -version="" - -# 让用户输入需要的版本 -read -p "请输入需要的版本:" version - -# 判断用户是否输入了数据 如果没有数据就默认赋值 -if [ -z "$version" ]; then - version="2024.11.02" -fi - -echo "正在下载版本:$version" - -# 代表用户输入了数据 将url下载到当前目录 -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" -echo "您现在可以修改 diskMirror-backEnd-spring-boot.yaml 文件,并拷贝到您宿主机的某个目录下,然后耐心等待" -curl -o "./diskMirror-backEnd-spring-boot.yaml" --insecure -k -L "https://github.com/BeardedManZhao/diskMirror-backEnd-spring-boot/releases/download/$version/application.yaml" - - -echo "正在开始编译,您现在可以修改 diskMirror-backEnd-spring-boot.yaml 文件,并拷贝到您宿主机的某个目录下,然后耐心等待编译完成!" - -docker build -t diskmirror-backend-spring-boot:$version . +wget https://github.com/BeardedManZhao/diskMirror-docker/releases/download/jdk-17.0.12/jdk-17.0.12.tar && tar -vxf jdk-17.0.12.tar && docker pull ubuntu:latest && docker build -t beardedmanzhao/diskmirror-docker:2024.12.05 . echo "安装脚本操作完毕,若过程无错误则代表安装成功,请您回到这里按下回车!" read -p "启动时:容器中的 /usr/local/springboot/conf/diskMirror-backEnd-spring-boot.yaml 会做为配置文件,您可以进行路径映射哦!" +