github上star比较多的开源博客系统halo,SpringBoot+Gradle+Hibernate,推荐的Java版本是11,我的本地环境是mac+idea
halo官方文档:https://docs.halo.run/ github: https://github.com/halo-dev/
一、本地部署
github拉取到本地后,需要进行一些配置,halo默认使用的是内置型数据库H2,需要使用mysql的话修改如下配置即可(注意是在运行安装项目前修改) 运行时报错如下 解决办法见官方文档 https://halo.run/archives/develop-application-start#%E5%85%8B%E9%9A%86%E9%A1%B9%E7%9B%AEoptional 执行之后项目正常运行。运行ip:端口然后根据步骤安装项目就可以了
二、阿里云部署
需要注意的是,halo项目运行依赖的是根目录下的.halo,我的是~/.halo,这个可以不用关系,但是在部署远程项目时需要特别注意一下,官方有相关的docker部署方法。我的部署方法是,在本地打包后上传到阿里云,具体步骤如下:
1. 本地打包
halo使用的是Gradle,打包时,双击bootJar即可,生成的jar包位于build下的libs文件夹下(修改项目名在根目录下的settings.gradle文件rootProject.name) 2. 服务器的准备
我的是阿里云服务器docker环境,这里使用openjdk:11创建一个docker
docker run -d -ti --name xdsblog-halo -p 9903:9903 -v /mnt/project/workspace/:/workspace openjdk:11
命令说明: -p:宿主机端口与容器端口映射,前面的端口为主机映射端口(需配置服务器安全组),后面的端口为镜像开放的端口 -v:挂载,将容器中的文件夹挂载到宿主机,方便部署,部署时将jar包上传到服务器,即可同步到docker内部 --restart=always:无论什么情况挂壁,总是重启 --name:容器名称 -d:使用指定的镜像,在后台运行容器
3. 上传相关文件 将jar包上传到服务器。以及之前说的.halo文件夹,暂时没有找到更好的方法,所以我的做法是将.halo上传到服务器后,再使用如下命令复制到根目录下。
cp -r .halo ~/.halo
4. 下面是一些常规的操作命令
1.docker ps -a // 查看所有的docker容器
2.docker exec -it commonWebServer /bin/bash // 进入容器
3.ps -f -C java // 查看所有的java进程
4.kill 1707 // 杀死已有的这个项目的进程
5.nohup java -jar xdsblog-1.4.11.jar > /dev/null & // 编译java包
以北京时区编译java包
nohup java -jar -Duser.timezone=GMT+8 xdsblog-1.4.11.jar > /dev/null &
三、扩展
这个配置不影响项目运行,只是为了适应本地环境和线上环境的区分,可使用如下方法指定环境 
|