hb0730 / boot-admin

BOOT-ADMIN是一个基于Spring Boot3和Vue3 的开源项目,项目采用前后端分离的模式,前端框架使用vue-pure-admin
MIT License
250 stars 84 forks source link

作者你好 请问能否出一个后端部署的详细文档 #25

Closed lammycode closed 5 months ago

lammycode commented 5 months ago

RT,感谢作者分享代码

hb0730 commented 5 months ago

这是我的预览环境docker部署文件

FROM eclipse-temurin:17-jre WORKDIR application COPY --from=builder application/dependencies/ ./ COPY --from=builder application/spring-boot-loader/ ./ COPY --from=builder application/snapshot-dependencies/ ./ COPY --from=builder application/application/ ./ ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

- job.Dockerfile
```Dockerfile
FROM eclipse-temurin:17-jre as builder
WORKDIR application
ARG JAR_FILE=job-*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract

FROM eclipse-temurin:17-jre
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

ADD dist.tar.gz /usr/share/nginx/html/ EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]


- web.Dockerfile
```Dockerfile
FROM eclipse-temurin:17-jre as builder
WORKDIR application
ARG JAR_FILE=web-*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract

FROM eclipse-temurin:17-jre
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

注意点

maven 构建只有进入项目目录mvn clean -DskipTests=true package

启动没有先后顺序,只有理清web,app等module的关系即可,把相关的sql脚本导入到mysql即可

hb0730 commented 5 months ago
image
hb0730 commented 5 months ago

如果说本地启动测试一下,可以直接使用项目中docker文件夹下下docker-compose.infra.yml ,然后将相关数据导入即可

lammycode commented 4 months ago

感谢作者回复,我在本地启动测试。上一次测试定时任务中的有参测试不成功 然后后台报错,尝试ping了后台端口除了9001 9002 9004 之外都不通,因为我不是做后端的所以没太懂是不是应用没有启动完全,不知道其他几个端口是否是长时间开通的。但今天突然就成功了。。。还有一个问题就是为啥需要把后台分为3个应用,这个和spring cloud有关系吗 还是单纯就是为了把应用分离

hb0730 commented 4 months ago

尝试ping了后台端口除了9001 9002 9004 之外都不通

暂时只有9001 APP应用,9002 WEB应用9004 JOB应用以及 RPC的 12200 App RPC server12201 Job RPC server,其他端口计划可能占用, 项目采用的是sofa RPCblot协议直连模式

为啥需要把后台分为3个应用,这个和spring cloud有关系吗 还是单纯就是为了把应用分离

模块与模块之间,服务与服务之间的耦合问题,前端服务与后端服务分离问题,如果有能力可以自行组合,比如把 web dao合在一起,比如也可以把modules下的job模块与app进行合并(可能涉及代码相关变动)

lammycode commented 4 months ago

了解 感谢作者

lammycode commented 4 months ago

作者你好 我研究了几天还是没有理清楚这个系统的架构例如modules/sys-module/sys-api/src/main/java/com/hb0730/rpc/sys/system/service/NoticeRpcService.java这个接口的实现类为什么放到了app/src/main/java/com/hb0730/sys/system/rpc/NoticeRpcServiceImpl.java 这个路径下 前者在modules下 而后者却在app下 如果能出一个关于项目结构的设计思路和相关文档就好了

hb0730 commented 4 months ago

RPC API 分为 Server/Client

作者你好 我研究了几天还是没有理清楚这个系统的架构例如modules/sys-module/sys-api/src/main/java/com/hb0730/rpc/sys/system/service/NoticeRpcService.java这个接口的实现类为什么放到了app/src/main/java/com/hb0730/sys/system/rpc/NoticeRpcServiceImpl.java 这个路径下 前者在modules下 而后者却在app下 如果能出一个关于项目结构的设计思路和相关文档就好了

app/src/main/java/com/hb0730/sys/system/rpc/NoticeRpcServiceImpl.java 为实现端即 Server, 对应应该有一个Client端对外即web

lammycode commented 4 months ago

有一点没太明白 这是一种代码组织方式 还是目前的代码是同一个项目内未来会通过RPC调用的方式拆分为多个项目

hb0730 commented 4 months ago

有一点没太明白 这是一种代码组织方式 还是目前的代码是同一个项目内未来会通过RPC调用的方式拆分为多个项目

方便服务与服务间的调用,也方便模块间的开发,开发完就是jar,方便引入

lammycode commented 4 months ago

理解一些但还没完全明白 是否有相关的文档介绍这样的开发方式

hb0730 commented 4 months ago

理解一些但还没完全明白 是否有相关的文档介绍这样的开发方式

由于有些模块还未开发完成,暂未整理相关文档介绍,

image

hb0730 commented 4 months ago

job server拆分为job-biz,job-api,后续如果不想单独作为服务,即可把job-biz引入到app server,核心不需要动,只需要适当适配一下即可使用

lammycode commented 4 months ago

大概明白了这个逻辑 细节部分我再多看下代码。感谢作者