docker compose 搭建 halo2.9,重启服务器以后一直在报未发现插件的错误,请问大家有没有遇到过这种情况呀:
重启服务器以后一直在报未发现插件的错误
日志:
mitkimicom_halo | 2023-09-25T15:50:23.388+08:00 ERROR 7 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController : Reconciler in run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 aborted with an error, re-enqueuing...
mitkimicom_halo |
mitkimicom_halo | java.lang.IllegalStateException: run.halo.app.core.extension.reconciler.PluginReconciler$DoNotRetryException: Plugin PluginMigrate not found in plugin manager.
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$updateStatus$17(PluginReconciler.java:383) ~[classes/:2.9.1]
mitkimicom_halo | at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329) ~[spring-retry-2.0.2.jar:na]
mitkimicom_halo | at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:209) ~[spring-retry-2.0.2.jar:na]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.updateStatus(PluginReconciler.java:378) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$readinessDetection$4(PluginReconciler.java:147) ~[classes/:2.9.1]
mitkimicom_halo | at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.readinessDetection(PluginReconciler.java:141) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$reconcile$0(PluginReconciler.java:103) ~[classes/:2.9.1]
mitkimicom_halo | at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.reconcile(PluginReconciler.java:95) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.reconcile(PluginReconciler.java:77) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.extension.controller.DefaultController$Worker.run(DefaultController.java:163) ~[api-2.9.1.jar:na]
mitkimicom_halo | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
mitkimicom_halo | at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
mitkimicom_halo | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
mitkimicom_halo | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
mitkimicom_halo | at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
mitkimicom_halo | Caused by: run.halo.app.core.extension.reconciler.PluginReconciler$DoNotRetryException: Plugin PluginMigrate not found in plugin manager.
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.getPluginWrapper(PluginReconciler.java:371) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$readinessDetection$3(PluginReconciler.java:153) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$doUpdateStatus$18(PluginReconciler.java:401) ~[classes/:2.9.1]
mitkimicom_halo | at java.base/java.util.Optional.ifPresent(Unknown Source) ~[na:na]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.doUpdateStatus(PluginReconciler.java:398) ~[classes/:2.9.1]
mitkimicom_halo | at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$updateStatus$17(PluginReconciler.java:380) ~[classes/:2.9.1]
mitkimicom_halo | ... 16 common frames omitted
请提供完整的部署过程。
Ryan Wang
操作系统是 Ubuntu 22.04,数据库用的是阿里云的mysql,工作空间在 /srv/mitkimicom_halo,在对应的 yaml 里也做了修改。按照官网 docker compose 的方法起的服务。第一次起服务的时候是正常的,theme 和 plugin 都是可用的。
在第一次起服务的时候有几个点不是完全按照官网来的:
- docker-compose 启动命令在 ubuntu 下是
docker compose up -d
,如果用短线的会报错(因为不太懂 docker 其实也没看懂是啥意思,但是看起来是 python 的报错) - pcre、openssl 都是用编译安装的,应该不会有问题。
- 没有使用 nginx,用的 tengine,使用上和 nginx 几乎没有差别,也是第一次用 tengine 接触一下啊。
以上情况是在第一次起服务的时候都正常的,因为我用的上一个版本是 1.3,连官网没有什么资料可以升级了,我就把文章重新贴了过来,并且把图片重新使用 upyun 的插件传上了 upyun。
然后我在重启服务器了以后发现 docker 起 halo 的时候就起不起来了,日志报错就是提示找不到插件,我就贴了一个完整报错在这里了。
比如说,有没有什么排查的建议呢?
mitkimi 检查 Halo 工作目录的挂载是否正常。
mitkimi 看看你的 compose 文件
- 已编辑
Ryan Wang 来了:
其中 {} 部分是脱敏的
version: "3"
services:
halo:
image: halohub/halo:2.9
container_name: mitkimicom_halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./:/srv/mitkimi.com-halo
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://rm-bp1n2xlaep8zx4a8h1o.mysql.rds.aliyuncs.com:3306/{my_database}
- --spring.r2dbc.username={my_username}
- --spring.r2dbc.password={my_pass_word}
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://next.mitkimi.com/
# 端口号 默认8090
- --server.port=8090
mitkimi volumes:
- ./:/srv/mitkimi.com-halo
不要修改 :
后面的路径,那是容器内的路径,固定的。你应该改为 /srv/mitkimi.com-halo:/root/.halo2
mitkimi 那是因为你数据库已经有了插件的信息,但是你工作目录是新的啊,之前都没挂载工作目录,所以找不到 plugins 目录的插件文件。
两个选择:
- 设置好工作目录之后重新安装插件。
- 删库,全部重来。