• 安装与使用
  • 本地idea拉取代码,自定义修改,jar包docker 教程

ps:此教程使用于懂的java开发,却不熟悉gradle模式的人员(诺只是安装搭建请参考官网或)这个

话不多说正式开始

1.代码拉取与环境配置
环境:

jdk:11(安装jdk11,并且配置环境变量,参考:https://blog.csdn.net/slysxy/article/details/105907140)
_ps:教程中为jdk8,我们需要的是jdk11,步骤一样,只是jdk版本不同

gradle (安装教程:https://blog.csdn.net/hahalan/article/details/102633380,版本不一定是最新,但不能太低)

安装完之后(能够通过命令查询到版本信息为成功安装),通过开发工具:idea(此处不做复述)拉取最新代码,并且配置好jdk和gradle,同时下载lombok插件,刚安装插件的要重启idea

idea git 拉取代码https://github.com/halo-dev/halo
记得设置idea自动导包
其次配置gradle

1.在plugins中加入id 'com.github.johnrengelman.shadow' version '5.2.0'(version的版本号可以去网站查询最新版本,此版本可能过时)
![https://img-blog.csdnimg.cn/20200304154158837.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RlbW8wX0xp,size_16,color_FFFFFF,t_70](https://)

2.加入下面代码,Main-Class为当前项目的main方法类,一般springboot为XXXAplication

![https://img-blog.csdnimg.cn/20200304154228629.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RlbW8wX0xp,size_16,color_FFFFFF,t_70](https://)

ps:上文配置参考:https://blog.csdn.net/Demo0_Li/article/details/104653452_

配置好后,记得刷新依赖
ps:依赖可能要加载一段时间

然后就可以愉快的启动了!

idea最右边 有个小象图标 gradle 打开它
然后 依次 halo -- >Tasks -- > application -- > bootRun
双击bootRun启动项目!

如果之前没有问题的话,这一步你会遇到 一个错误:

ThemePropertyMissingException

没错,没有默认主题文件,

打开官网 找到主题 [https://halo.run/themes.html](https://)
Anatole
下载
解压到 C:\Users\你电脑用户名.halo\templates\themes\anatole
ps:解压最里面的一大堆文件到此目录

然后再运行一次,ojbk 完美

接下来是关于打包,发布至docker

在idea 左下角有个 Terminal 点开他

输入命令:gradle build
中间会 有警告 代码过时,不用理会,等代码执行完,在项目中会生产一个黄色的文件夹
build
打开它 --> libs
里面就是你项目生成的jar包
ps:win本地可以使用cmd窗口 java -jar ***.jar 来运行起来,如果没有错误请看下一步
如果报错,且错误信息为:

  Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

那就是你的打包有问题,这里踩了个坑,此时应该使用 gradle build 来打包,而并非其他命令

复制这个jar包 放到你的linux服务器上

同时 新建Dockerfile 文件(此文件没有后缀名)
内容为:

 FROM openjdk:11
VOLUME /suke/docker
ADD 你自己jar包名.jar /APP.jar
#运行命令
ENTRYPOINT ["java","-jar","/APP.jar"]

ps:jar和Dockerfile 应该在同一目录下

先创建工作目录:

mkdir ~/.halo && cd ~/.halo

下载示例配置文件到工作目录:

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

编辑配置文件,配置数据库或者端口等,如需配置请 参考配置:

vim application.yaml
然后按 i 就可以开始 编辑

再按Esc
输入 :
再输入wq 保存退出
ps:输入 !q 则不保存退出,以上所有符号为英文输入法下 字符_

再使用 docker image 查看是否生成成功
ps:如果没生成成功,则排查 jar包与Dockerfile 文件是否处于同一目录下 ,jar包名称是否与Dockerfile 中名称一致

然后使用命令生成容器:

docker run -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo halo-1.4.9

ps: -p 外部访问端口:容器端口(配置文件中port对应的端口) 例如 80:8090

再使用 docker logs -f halo 查看容器是否正确启动

启动后 访问自己博客主页,此时可能出现的问题
1.主页空白
_此时按F12找到Network点击它,再刷新页面,请求中如果css等文件爆红,则是端口未开放,查看每个文件的端口,去腾讯云或者阿里云中 开放此端口(不再复述) _

2.启动报错
如果是Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
这种错误信息,请检查你的打包方式是否与文中一致

如果是 ThemePropertyMissingException ,请在/root/.halo/templates/themes/anatole 目录下放入主题(解压后那一大堆)文件!

至此 搭建完成,后期则 可以自己修改配置代码

如果你只是想使用,请参考官网或(此处)

如果不正确环境指出错误😸

    8 个月 后

    gradle build 各种报错,比如zxing 要指定android sdk什么的

    22 天 后

    16621669970 同时 新建Dockerfile 文件(此文件没有后缀名)
    内容为:

    FROM openjdk:11
    VOLUME /suke/docker
    ADD 你自己jar包名.jar /APP.jar
    #运行命令
    ENTRYPOINT ["java","-jar","/APP.jar"]

    ps:jar和Dockerfile 应该在同一目录下

    这个生成自己的镜像没懂- -,这个文件不用执行吗?如何生成自己的镜像