docker-compose.yaml方式部署报错,
docker-compose.yaml内容如下:

version: "3"
  
services:
  halo_2:
    image: halohub/halo:2.7
    container_name: halo2.7
    restart: on-failure:3
    volumes:
      - ./data:/root/.halo2
    ports:
      - "8091:8091"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8091/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://127.0.0.1:3307/halo2
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=root
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=https://localhost:8091/
      # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=admin
      # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=123456

容器创建成功,使用docker logs -f -t --tail 1000 halo2.7,容器内部jar包启动报错如下:

2023-07-12T17:41:30.290+08:00 ERROR 7 --- [nReconciler-t-1] r.h.a.c.e.reconciler.PluginReconciler    : Failed to reconcile plugin: [PluginMigrate]
2023-07-12T09:41:30.291682384Z 
2023-07-12T09:41:30.291688442Z run.halo.app.core.extension.reconciler.PluginReconciler$DoNotRetryException: Plugin PluginMigrate not found in plugin manager.
2023-07-12T09:41:30.291691850Z  at run.halo.app.core.extension.reconciler.PluginReconciler.getPluginWrapper(PluginReconciler.java:370) ~[classes/:2.7.0]
2023-07-12T09:41:30.291695576Z  at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$readinessDetection$3(PluginReconciler.java:149) ~[classes/:2.7.0]
2023-07-12T09:41:30.291698633Z  at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291701436Z  at run.halo.app.core.extension.reconciler.PluginReconciler.readinessDetection(PluginReconciler.java:138) ~[classes/:2.7.0]
2023-07-12T09:41:30.291704816Z  at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$reconcile$0(PluginReconciler.java:101) ~[classes/:2.7.0]
2023-07-12T09:41:30.291707783Z  at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291710555Z  at run.halo.app.core.extension.reconciler.PluginReconciler.reconcile(PluginReconciler.java:93) ~[classes/:2.7.0]
2023-07-12T09:41:30.291713314Z  at run.halo.app.core.extension.reconciler.PluginReconciler.reconcile(PluginReconciler.java:75) ~[classes/:2.7.0]
2023-07-12T09:41:30.291716137Z  at run.halo.app.extension.controller.DefaultController$Worker.run(DefaultController.java:163) ~[api-2.7.0.jar:na]
2023-07-12T09:41:30.291719166Z  at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291721848Z  at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291724554Z  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291727265Z  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291730077Z  at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
2023-07-12T09:41:30.291732742Z 
2023-07-12T09:41:31.304598345Z 2023-07-12T17:41:31.302+08:00  INFO 7 --- [tor-tcp-epoll-2] org.wltea.analyzer.dic.Dictionary        : 加载扩展停止词典:org/wltea/analyzer/dic/stopword.dic
2023-07-12T09:41:31.710654904Z 2023-07-12T17:41:31.709+08:00  INFO 7 --- [         task-1] run.halo.app.search.IndicesInitializer   : Initialized post indices. Usage: StopWatch 'PostIndicesWatch': running time = 6712417191 ns; [rebuild] took 6712417191 ns = 100%
2023-07-12T09:41:31.792648689Z 2023-07-12T17:41:31.792+08:00 ERROR 7 --- [nReconciler-t-1] r.h.a.c.e.reconciler.PluginReconciler    : Failed to reconcile plugin: [PluginS3ObjectStorage]
2023-07-12T09:41:31.792669258Z 
2023-07-12T09:41:31.792682229Z run.halo.app.core.extension.reconciler.PluginReconciler$DoNotRetryException: Plugin PluginS3ObjectStorage not found in plugin manager.

    两个问题:

    BBJ
    ports:
    - "8091:8091"

    没有看到你对容器内部端口的指定,所以不要修改冒号后面的端口号,你应该写 8091:8090

    BBJ - --spring.r2dbc.url=r2dbc:pool:mysql://127.0.0.1:3307/halo2

    这个数据库确定能够在容器内访问吗,如果是宿主机的 MySQL,请参考:https://docs.halo.run/getting-started/install/docker-compose#:~:text=%E4%BB%85%E5%88%9B%E5%BB%BA%20Halo%20%E5%AE%9E%E4%BE%8B%EF%BC%88%E4%BD%BF%E7%94%A8%E5%B7%B2%E6%9C%89%E5%A4%96%E9%83%A8%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%8CMySQL%20%E4%B8%BA%E4%BE%8B%EF%BC%89%EF%BC%9A

    • BBJ 回复了此帖

      Ryan Wang 👍 按照你的方式,重新指定了ports
      ports:

      • 8091: 8090
        数据库是可以连接通的,还是报错:
        2023-07-12T19:19:51.723+08:00 ERROR 7 --- [nReconciler-t-1] r.h.a.c.e.reconciler.PluginReconciler : Failed to reconcile plugin: [PluginPhotos]
        2023-07-12T11:19:51.724708644Z
        2023-07-12T11:19:51.724713973Z run.halo.app.core.extension.reconciler.PluginReconciler$DoNotRetryException: Plugin PluginPhotos not found in plugin manager.
        2023-07-12T11:19:51.724718231Z at run.halo.app.core.extension.reconciler.PluginReconciler.getPluginWrapper(PluginReconciler.java:370) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724722683Z at run.halo.app.core.extension.reconciler.PluginReconciler.lookupPluginSetting(PluginReconciler.java:177) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724726537Z at run.halo.app.core.extension.reconciler.PluginReconciler.waitForSettingCreation(PluginReconciler.java:216) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724730689Z at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$readinessDetection$3(PluginReconciler.java:139) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724734650Z at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
        2023-07-12T11:19:51.724738395Z at run.halo.app.core.extension.reconciler.PluginReconciler.readinessDetection(PluginReconciler.java:138) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724742137Z at run.halo.app.core.extension.reconciler.PluginReconciler.lambda$reconcile$0(PluginReconciler.java:101) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724745905Z at java.base/java.util.Optional.map(Unknown Source) ~[na:na]
        2023-07-12T11:19:51.724749555Z at run.halo.app.core.extension.reconciler.PluginReconciler.reconcile(PluginReconciler.java:93) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724753308Z at run.halo.app.core.extension.reconciler.PluginReconciler.reconcile(PluginReconciler.java:75) ~[classes/:2.7.0]
        2023-07-12T11:19:51.724757026Z at run.halo.app.extension.controller.DefaultController$Worker.run(DefaultController.java:163) ~[api-2.7.0.jar:na]
        2023-07-12T11:19:51.724760767Z at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[na:na]
        2023-07-12T11:19:51.724764353Z at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
        2023-07-12T11:19:51.724768013Z at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
        2023-07-12T11:19:51.724771597Z at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
        2023-07-12T11:19:51.724775176Z at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]

      Ryan Wang 👍
      `
      version: "3"


      services:
      halo_2:
      image: halohub/halo:2.7
      container_name: halo2.7
      restart: on-failure:3
      volumes:
      - ./data:/root/.halo2
      ports:
      - 8091:8090
      healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8091/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
      command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://120.48.xx.xx:3307/halo2
      - --spring.r2dbc.username=root
      #MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=root
      - --spring.sql.init.platform=mysql
      #外部访问地址,请根据实际需要修改
      - --halo.external-url=https://localhost:8091/
      #初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=juju
      #初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=123456
      `

      Ryan Wang 👍 删除掉映射出来的data文件夹后恢复正常了。。。