From 4ee5d69b3115733414babb2e7b9fb5b2a171905f Mon Sep 17 00:00:00 2001 From: ReaJason Date: Sat, 29 Mar 2025 17:13:51 +0800 Subject: [PATCH] docs: update README --- README.md | 202 +++++++++++++++++++++++++++--------------------------- 1 file changed, 102 insertions(+), 100 deletions(-) diff --git a/README.md b/README.md index 2caa1be4..ff5583aa 100644 --- a/README.md +++ b/README.md @@ -72,106 +72,6 @@ docker rm -f memshell-party docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest ``` -### 本地构建 - -> 适合想编写代码的小伙伴,使用 Git Clone 下载到本地,并构建前后端项目以供使用 - -首先需要下载 [bun](https://bun.sh/),这是一款用于构建前端服务的工具。 - -1. 使用 Git Clone 项目 - ```bash - git clone https://github.com/ReaJason/MemShellParty.git - ``` -2. 构建前端项目,build 结束会将静态资源自动移动到 Spring Boot 中以供使用 - ```bash - cd MemShellParty/web - - bun install - - bun run build - ``` -3. 构建后端项目,确保使用 JDK17 环境 - ```bash - cd MemShellParty/boot - - ./gradlew :boot:bootjar -x test - ``` - -构建完之后,可直接启动 jar 包,jar 包位于 `MemShellParty/boot/build/libs/boot-1.0.0.jar` - -```bash -cd MemShellParty/boot - -java -jar \ - --add-opens=java.base/java.util=ALL-UNNAMED \ - --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \ - --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED \ - build/libs/boot-1.0.0.jar -``` - -也可这基础上再继续构建容器来使用 - -```bash -cd MemShellParty/boot - -docker buildx build -t memshell-party:latest . --load - -docker run -it -d --name memshell-party -p 8080:8080 memshell-party:latest -``` - -### Dockerfile 一键构建 - -> 适合于希望构建自定义访问路径的小伙伴,例如 NGINX 反代的场景([#44](https://github.com/ReaJason/MemShellParty/issues/44)) - -下载项目根目录的 [Dockerfile](./Dockerfile) - -- VERSION: 版本信息,随意,建议用最新的 tag 号,仅作前端展示 -- ROUTE_ROOT_PATH: 前端根路由配置 -- CONTEXT_PATH: 后端访问前缀 - -```bash -# 基础构建 -docker buildx build \ - --build-arg VERSION=1.3.1 \ - -t memshell-party:latest . --load - -# 基础镜像启动,访问 127.0.0.1:8080 -docker run -it -d -p 8080:8080 memshell-party:latest - -# 自定义访问路径构建 -docker buildx build \ - --build-arg VERSION=1.3.1 \ - --build-arg ROUTE_ROOT_PATH=/memshell-party \ - --build-arg CONTEXT_PATH=/memshell-party \ - -t memshell-party:latest . --load - -# 自定义路径构建镜像启动,访问 127.0.0.1:8080/memshell-party -docker run -it -p 8080:8080 \ - -e BOOT_OPTS=--server.servlet.context-path=/memshell-party \ - memshell-party:latest -``` - -如果需要使用 NGINX 反代,请先使用自定义访问路径构建容器,并配置 NGINX 如下: - -其中 `location /memshell-party`、`ROUTE_ROOT_PATH=/memshell-party`、`CONTEXT_PATH=/memshell-party` 和 -`BOOT_OPTS=--server.servlet.context-path=/memshell-party` 都要一致才行。 - -```text -location /memshell-party { - proxy_pass http://127.0.0.1:8080; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-By $server_addr:$server_port; - proxy_set_header X-Forwarded-For $remote_addr; - proxy_http_version 1.1; - proxy_connect_timeout 3s; - proxy_read_timeout 300s; - proxy_send_timeout 300s; - proxy_buffer_size 16k; - proxy_buffers 8 64k; - proxy_busy_buffers_size 128k; -} -``` - ## 适配情况 已兼容 Java6 ~ Java8、Java9、Java11、Java17、Java21 @@ -247,6 +147,108 @@ location /memshell-party { - [ ] JDBC 连接 - [ ] 其他常见反序列化 +## 本地构建 + +### 源代码构建 + +> 适合想编写代码的小伙伴,使用 Git Clone 下载到本地,并构建前后端项目以供使用 + +首先需要下载 [bun](https://bun.sh/),这是一款用于构建前端服务的工具。 + +1. 使用 Git Clone 项目 + ```bash + git clone https://github.com/ReaJason/MemShellParty.git + ``` +2. 构建前端项目,build 结束会将静态资源自动移动到 Spring Boot 中以供使用 + ```bash + cd MemShellParty/web + + bun install + + bun run build + ``` +3. 构建后端项目,确保使用 JDK17 环境 + ```bash + cd MemShellParty/boot + + ./gradlew :boot:bootjar -x test + ``` + +构建完之后,可直接启动 jar 包,jar 包位于 `MemShellParty/boot/build/libs/boot-1.0.0.jar` + +```bash +cd MemShellParty/boot + +java -jar \ + --add-opens=java.base/java.util=ALL-UNNAMED \ + --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \ + --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED \ + build/libs/boot-1.0.0.jar +``` + +也可这基础上再继续构建容器来使用 + +```bash +cd MemShellParty/boot + +docker buildx build -t memshell-party:latest . --load + +docker run -it -d --name memshell-party -p 8080:8080 memshell-party:latest +``` + +### Dockerfile 一键构建 + +> 适合于希望构建自定义访问路径的小伙伴,例如 NGINX 反代的场景([#44](https://github.com/ReaJason/MemShellParty/issues/44)) + +下载项目根目录的 [Dockerfile](./Dockerfile) + +- VERSION: 版本信息,随意,建议用最新的 tag 号,仅作前端展示 +- ROUTE_ROOT_PATH: 前端根路由配置 +- CONTEXT_PATH: 后端访问前缀 + +```bash +# 基础构建 +docker buildx build \ + --build-arg VERSION=1.6.0 \ + -t memshell-party:latest . --load + +# 基础镜像启动,访问 127.0.0.1:8080 +docker run -it -d -p 8080:8080 memshell-party:latest + +# 自定义访问路径构建 +docker buildx build \ + --build-arg VERSION=1.6.0 \ + --build-arg ROUTE_ROOT_PATH=/memshell-party \ + --build-arg CONTEXT_PATH=/memshell-party \ + -t memshell-party:latest . --load + +# 自定义路径构建镜像启动,访问 127.0.0.1:8080/memshell-party +docker run -it -p 8080:8080 \ + -e BOOT_OPTS=--server.servlet.context-path=/memshell-party \ + memshell-party:latest +``` + +如果需要使用 NGINX 反代,请先使用自定义访问路径构建容器,并配置 NGINX 如下: + +其中 `location /memshell-party`、`ROUTE_ROOT_PATH=/memshell-party`、`CONTEXT_PATH=/memshell-party` 和 +`BOOT_OPTS=--server.servlet.context-path=/memshell-party` 都要一致才行。 + +```text +location /memshell-party { + proxy_pass http://127.0.0.1:8080; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-By $server_addr:$server_port; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_http_version 1.1; + proxy_connect_timeout 3s; + proxy_read_timeout 300s; + proxy_send_timeout 300s; + proxy_buffer_size 16k; + proxy_buffers 8 64k; + proxy_busy_buffers_size 128k; +} +``` + ## How 1. 如何使用 bytebuddy 生成类,为属性赋值,添加方法,指定位置调用方法?(**WIP**)