• 请求帮助
  • 重启服务器以后一直在报未发现插件的错误

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 都是可用的。
在第一次起服务的时候有几个点不是完全按照官网来的:

  1. docker-compose 启动命令在 ubuntu 下是 docker compose up -d,如果用短线的会报错(因为不太懂 docker 其实也没看懂是啥意思,但是看起来是 python 的报错)
  2. pcre、openssl 都是用编译安装的,应该不会有问题。
  3. 没有使用 nginx,用的 tengine,使用上和 nginx 几乎没有差别,也是第一次用 tengine 接触一下啊。

以上情况是在第一次起服务的时候都正常的,因为我用的上一个版本是 1.3,连官网没有什么资料可以升级了,我就把文章重新贴了过来,并且把图片重新使用 upyun 的插件传上了 upyun。
然后我在重启服务器了以后发现 docker 起 halo 的时候就起不起来了,日志报错就是提示找不到插件,我就贴了一个完整报错在这里了。

比如说,有没有什么排查的建议呢?

    Ryan Wang 👍
    挂载目录里如果只有 application.yaml 的话是不是就不对了。。我觉得可能是不对,按说工作目录里应该还有一些其他的数据才对,不应该只有 application.yaml

      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

          Ryan Wang 👍 /srv/mitkimi.com-halo:/root/.halo2

          还是一样会报找不到插件的错。我在想是不是得把工作目录清除然后再重新起?

            mitkimi 那是因为你数据库已经有了插件的信息,但是你工作目录是新的啊,之前都没挂载工作目录,所以找不到 plugins 目录的插件文件。

            两个选择:

            1. 设置好工作目录之后重新安装插件。
            2. 删库,全部重来。

              Ryan Wang 👍 库里已经有贴近来的数据了,成本太高了。我去看看 selection 1 能不能搞。
              大概有思路了,多谢大佬~