[halo-dev/halo]halo2.10 docker-compose up -d 启动报错

2023-12-08 425 views
2

系统信息

docker-compose up -d halo启动报错

使用的哪种方式运行?

Docker

在线站点地址

No response

发生了什么?

[root@linkage halo]# cat docker-compose.yml
version: "3"

services:
  halo:
    image: halohub/halo:2.10
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=**********************
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/

  halodb:
    image: mysql:8.1.0
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    command:
      - --default-authentication-plugin=caching_sha2_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    ports:
      - "3306:3306"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=*******************
      - MYSQL_DATABASE=halo

networks:
  halo_network:

相关日志输出

__  __      __
   / / / /___ _/ /___
  / /_/ / __ `/ / __ \
 / __  / /_/ / / /_/ /
/_/ /_/\__,_/_/\____/

Version: 2.10.2
2023-11-29T22:18:27.153+08:00  INFO 6 --- [           main] run.halo.app.Application                 : Starting Application v2.10.2 using Java 17.0.9 with PID 6 (/application/BOOT-INF/classes started by root in /application)
2023-11-29T22:18:27.160+08:00  INFO 6 --- [           main] run.halo.app.Application                 : No active profile set, falling back to 1 default profile: "default"
2023-11-29T22:18:31.187+08:00  INFO 6 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2023-11-29T22:18:31.193+08:00  INFO 6 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data R2DBC repositories in DEFAULT mode.
2023-11-29T22:18:31.638+08:00  INFO 6 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 419 ms. Found 1 R2DBC repository interfaces.
2023-11-29T22:18:38.578+08:00  INFO 6 --- [           main] org.pf4j.DefaultPluginStatusProvider     : Enabled plugins: []
2023-11-29T22:18:38.581+08:00  INFO 6 --- [           main] org.pf4j.DefaultPluginStatusProvider     : Disabled plugins: []
2023-11-29T22:18:38.588+08:00  INFO 6 --- [           main] org.pf4j.DefaultPluginManager            : PF4J version 3.10.0 in 'deployment' mode
2023-11-29T22:18:39.170+08:00  INFO 6 --- [           main] r.h.a.s.a.pat.DefaultPatJwkSupplier      : Generating RSA keys for PAT.
2023-11-29T22:18:45.757+08:00  INFO 6 --- [           main] r.h.a.s.a.pat.DefaultPatJwkSupplier      : Wrote RSA keys for PAT into /root/.halo2/keys/pat_id_rsa and /root/.halo2/keys/pat_id_rsa.pub
2023-11-29T22:18:51.043+08:00  INFO 6 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 7 endpoint(s) beneath base path '/actuator'
2023-11-29T22:18:55.412+08:00  INFO 6 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8090
2023-11-29T22:18:55.419+08:00  INFO 6 --- [           main] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.metrics.VisitedEventReconciler
2023-11-29T22:18:55.442+08:00  INFO 6 --- [           main] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.metrics.ReplyEventReconciler
2023-11-29T22:18:55.443+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.metrics.VisitedEventReconciler-worker-1 started
2023-11-29T22:18:55.444+08:00  INFO 6 --- [           main] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.search.post.PostEventReconciler
2023-11-29T22:18:55.446+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.metrics.ReplyEventReconciler-worker-1 started
2023-11-29T22:18:55.448+08:00  INFO 6 --- [           main] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.plugin.PluginCreatedEventReconciler
2023-11-29T22:18:55.448+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.search.post.PostEventReconciler-worker-1 started
2023-11-29T22:18:55.452+08:00  INFO 6 --- [           main] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.metrics.VotedEventReconciler
2023-11-29T22:18:55.454+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.plugin.PluginCreatedEventReconciler-worker-1 started
2023-11-29T22:18:55.455+08:00  INFO 6 --- [           main] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.notification.DefaultNotificationSender
2023-11-29T22:18:55.458+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.metrics.VotedEventReconciler-worker-1 started
2023-11-29T22:18:55.460+08:00  INFO 6 --- [ationSender-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.notification.DefaultNotificationSender-worker-1 started
2023-11-29T22:18:55.461+08:00  INFO 6 --- [ationSender-t-2] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.notification.DefaultNotificationSender-worker-2 started
2023-11-29T22:18:55.462+08:00  INFO 6 --- [ationSender-t-3] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.notification.DefaultNotificationSender-worker-3 started
2023-11-29T22:18:55.463+08:00  INFO 6 --- [ationSender-t-4] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.notification.DefaultNotificationSender-worker-4 started
2023-11-29T22:18:55.469+08:00  INFO 6 --- [ationSender-t-5] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.notification.DefaultNotificationSender-worker-5 started
2023-11-29T22:18:55.548+08:00  INFO 6 --- [   scheduling-1] r.h.a.s.a.login.impl.RsaKeyService       : Generating RSA keys...
2023-11-29T22:18:55.561+08:00  INFO 6 --- [           main] run.halo.app.Application                 : Started Application in 29.725 seconds (process running for 30.604)
2023-11-29T22:18:55.896+08:00 ERROR 6 --- [or-http-epoll-2] a.w.r.e.AbstractErrorWebExceptionHandler : [41cd4c35-1]  500 Server Error for HTTP GET "/actuator/health/readiness"

run.halo.app.extension.exception.SchemeNotFoundException: 500 INTERNAL_SERVER_ERROR "Scheme not found for plugin.halo.run/v1alpha1/ExtensionPointDefinition"
        at run.halo.app.extension.SchemeManager.lambda$get$1(SchemeManager.java:43) ~[api-2.10.2.jar:2.10.2]
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
        *__checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
        *__checkpoint ⇢ org.springframework.web.filter.reactive.ServerHttpObservationFilter [DefaultWebFilterChain]
        *__checkpoint ⇢ HTTP GET "/actuator/health/readiness" [ExceptionHandlingWebHandler]
Original Stack Trace:
                at run.halo.app.extension.SchemeManager.lambda$get$1(SchemeManager.java:43) ~[api-2.10.2.jar:2.10.2]
                at java.base/java.util.Optional.orElseThrow(Unknown Source) ~[na:na]
                at run.halo.app.extension.SchemeManager.get(SchemeManager.java:42) ~[api-2.10.2.jar:2.10.2]
                at run.halo.app.extension.SchemeManager.get(SchemeManager.java:49) ~[api-2.10.2.jar:2.10.2]
                at run.halo.app.extension.ReactiveExtensionClientImpl.list(ReactiveExtensionClientImpl.java:48) ~[classes/:2.10.2]
                at run.halo.app.plugin.extensionpoint.DefaultExtensionGetter.fetchExtensionPointDefinition(DefaultExtensionGetter.java:103) ~[classes/:2.10.2]
                at run.halo.app.plugin.extensionpoint.DefaultExtensionGetter.getEnabledExtensionByDefinition(DefaultExtensionGetter.java:76) ~[classes/:2.10.2]
                at run.halo.app.security.DynamicMatcherSecurityWebFilterChain.getAdditionalFilters(DynamicMatcherSecurityWebFilterChain.java:46) ~[classes/:2.10.2]
                at run.halo.app.security.DynamicMatcherSecurityWebFilterChain.getWebFilters(DynamicMatcherSecurityWebFilterChain.java:41) ~[classes/:2.10.2]
                at org.springframework.security.web.server.WebFilterChainProxy.lambda$filter$2(WebFilterChainProxy.java:61) ~[spring-security-web-6.1.5.jar:6.1.5]
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.drain(FluxFilterWhen.java:301) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onNext(FluxFilterWhen.java:140) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:335) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onSubscribe(FluxFilterWhen.java:200) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4495) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[reactor-core-3.5.11.jar:3.5.11]
                at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1052) ~[reactor-netty-http-1.1.12.jar:1.1.12]
                at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:710) ~[reactor-netty-core-1.1.12.jar:1.1.12]
                at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) ~[reactor-netty-core-1.1.12.jar:1.1.12]
                at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:650) ~[reactor-netty-http-1.1.12.jar:1.1.12]
                at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) ~[reactor-netty-core-1.1.12.jar:1.1.12]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:238) ~[reactor-netty-http-1.1.12.jar:1.1.12]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[netty-transport-classes-epoll-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[netty-transport-classes-epoll-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[netty-transport-classes-epoll-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.100.Final.jar:4.1.100.Final]
                at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.100.Final.jar:4.1.100.Final]
                at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]

2023-11-29T22:18:56.061+08:00  INFO 6 --- [   scheduling-1] r.h.a.s.a.login.impl.RsaKeyService       : Generated RSA keys. Usage: 512 ms.
2023-11-29T22:18:58.962+08:00  INFO 6 --- [           main] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.Post) synchronizer...
2023-11-29T22:18:59.176+08:00  INFO 6 --- [           main] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.Post) synchronizer.
2023-11-29T22:18:59.177+08:00  INFO 6 --- [           main] r.h.app.infra.DefaultThemeInitializer    : Initializing default theme from classpath:themes/theme-earth.zip
2023-11-29T22:18:59.991+08:00  INFO 6 --- [           main] r.h.app.infra.DefaultThemeInitializer    : Initialized default theme: Theme(super=AbstractExtension(apiVersion=theme.halo.run/v1alpha1, kind=Theme, metadata=Metadata(name=theme-earth, generateName=null, labels=null, annotations={store.halo.run/app-id=app-KgWqR}, version=0, creationTimestamp=2023-11-29T14:18:59.409123561Z, deletionTimestamp=null, finalizers=null)), spec=Theme.ThemeSpec(displayName=Earth, author=Theme.Author(name=halo-dev, website=https://halo.run), description=Default theme for Halo 2.0, logo=https://halo.run/logo, website=https://github.com/halo-dev/theme-earth, homepage=https://github.com/halo-dev/theme-earth, repo=https://github.com/halo-dev/theme-earth.git, version=1.6.0, require=>=2.8.0, requires=>=2.8.0, settingName=theme-earth-setting, configMapName=theme-earth-configMap, license=null, customTemplates=null), status=null)
2023-11-29T22:19:00.498+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller garbage-collector-controller
2023-11-29T22:19:00.499+08:00  INFO 6 --- [-controller-t-1] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-1 started
2023-11-29T22:19:00.501+08:00  INFO 6 --- [-controller-t-2] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-2 started
2023-11-29T22:19:00.503+08:00  INFO 6 --- [-controller-t-3] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-3 started
2023-11-29T22:19:00.504+08:00  INFO 6 --- [-controller-t-4] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-4 started
2023-11-29T22:19:00.508+08:00  INFO 6 --- [-controller-t-5] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-5 started
2023-11-29T22:19:00.510+08:00  INFO 6 --- [-controller-t-7] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-7 started
2023-11-29T22:19:00.510+08:00  INFO 6 --- [-controller-t-6] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-6 started
2023-11-29T22:19:00.511+08:00  INFO 6 --- [-controller-t-8] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-8 started
2023-11-29T22:19:00.511+08:00  INFO 6 --- [-controller-t-9] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-9 started
2023-11-29T22:19:00.515+08:00  INFO 6 --- [controller-t-10] r.h.a.e.controller.DefaultController     : Controller worker garbage-collector-controller-worker-10 started
2023-11-29T22:19:00.524+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.UserReconciler
2023-11-29T22:19:00.526+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.RoleBindingReconciler
2023-11-29T22:19:00.526+08:00  INFO 6 --- [rReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.UserReconciler-worker-1 started
2023-11-29T22:19:00.527+08:00  INFO 6 --- [rReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.User) synchronizer...
2023-11-29T22:19:00.528+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.attachment.AttachmentReconciler
2023-11-29T22:19:00.528+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.RoleBindingReconciler-worker-1 started
2023-11-29T22:19:00.529+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.RoleBinding) synchronizer...
2023-11-29T22:19:00.538+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.RoleBinding) synchronizer.
2023-11-29T22:19:00.538+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.SystemSettingReconciler
2023-11-29T22:19:00.538+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.attachment.AttachmentReconciler-worker-1 started
2023-11-29T22:19:00.539+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.attachment.Attachment) synchronizer...
2023-11-29T22:19:00.540+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.MenuItemReconciler
2023-11-29T22:19:00.542+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.SystemSettingReconciler-worker-1 started
2023-11-29T22:19:00.543+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.extension.ConfigMap) synchronizer...
2023-11-29T22:19:00.545+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.CommentReconciler
2023-11-29T22:19:00.546+08:00  INFO 6 --- [mReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.MenuItemReconciler-worker-1 started
2023-11-29T22:19:00.547+08:00  INFO 6 --- [mReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.MenuItem) synchronizer...
2023-11-29T22:19:00.549+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.PluginReconciler
2023-11-29T22:19:00.555+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.CommentReconciler-worker-1 started
2023-11-29T22:19:00.558+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.Comment) synchronizer...
2023-11-29T22:19:00.560+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.attachment.Attachment) synchronizer.
2023-11-29T22:19:00.565+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.migration.BackupReconciler
2023-11-29T22:19:00.565+08:00  INFO 6 --- [nReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.PluginReconciler-worker-1 started
2023-11-29T22:19:00.565+08:00  INFO 6 --- [nReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.Plugin) synchronizer...
2023-11-29T22:19:00.567+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.ReverseProxyReconciler
2023-11-29T22:19:00.567+08:00  INFO 6 --- [pReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.migration.BackupReconciler-worker-1 started
2023-11-29T22:19:00.569+08:00  INFO 6 --- [pReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.migration.Backup) synchronizer...
2023-11-29T22:19:00.572+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.TagReconciler
2023-11-29T22:19:00.573+08:00  INFO 6 --- [         task-1] run.halo.app.search.IndicesInitializer   : Initialize post indices...
2023-11-29T22:19:00.573+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.ReverseProxyReconciler-worker-1 started
2023-11-29T22:19:00.575+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.ReverseProxy) synchronizer...
2023-11-29T22:19:00.575+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.ReplyReconciler
2023-11-29T22:19:00.576+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.TagReconciler-worker-1 started
2023-11-29T22:19:00.577+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.Tag) synchronizer...
2023-11-29T22:19:00.583+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.notification.NotificationTrigger
2023-11-29T22:19:00.583+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.ReplyReconciler-worker-1 started
2023-11-29T22:19:00.585+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.Reply) synchronizer...
2023-11-29T22:19:00.586+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.CategoryReconciler
2023-11-29T22:19:00.587+08:00  INFO 6 --- [mReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.MenuItem) synchronizer.
2023-11-29T22:19:00.588+08:00  INFO 6 --- [tionTrigger-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.notification.NotificationTrigger-worker-1 started
2023-11-29T22:19:00.589+08:00  INFO 6 --- [tionTrigger-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.notification.Reason) synchronizer...
2023-11-29T22:19:00.591+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.PostReconciler
2023-11-29T22:19:00.593+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.CategoryReconciler-worker-1 started
2023-11-29T22:19:00.594+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.Category) synchronizer...
2023-11-29T22:19:00.594+08:00  INFO 6 --- [rReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.User) synchronizer.
2023-11-29T22:19:00.596+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.PostReconciler-worker-1 started
2023-11-29T22:19:00.596+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.theme.router.SinglePageRoute
2023-11-29T22:19:00.597+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.Post) synchronizer...
2023-11-29T22:19:00.597+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.extension.ConfigMap) synchronizer.
2023-11-29T22:19:00.600+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.SinglePageReconciler
2023-11-29T22:19:00.600+08:00  INFO 6 --- [lePageRoute-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.theme.router.SinglePageRoute-worker-1 started
2023-11-29T22:19:00.601+08:00  INFO 6 --- [lePageRoute-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.SinglePage) synchronizer...
2023-11-29T22:19:00.606+08:00  INFO 6 --- [pReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.migration.Backup) synchronizer.
2023-11-29T22:19:00.608+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.ThemeReconciler
2023-11-29T22:19:00.611+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.RoleReconciler
2023-11-29T22:19:00.611+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.Reply) synchronizer.
2023-11-29T22:19:00.613+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.AnnotationSettingReconciler
2023-11-29T22:19:00.614+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.RoleReconciler-worker-1 started
2023-11-29T22:19:00.615+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.Role) synchronizer...
2023-11-29T22:19:00.615+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.Tag) synchronizer.
2023-11-29T22:19:00.615+08:00  INFO 6 --- [tionTrigger-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.notification.Reason) synchronizer.
2023-11-29T22:19:00.617+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.ReverseProxy) synchronizer.
2023-11-29T22:19:00.611+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.SinglePageReconciler-worker-1 started
2023-11-29T22:19:00.622+08:00  INFO 6 --- [yReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.Category) synchronizer.
2023-11-29T22:19:00.622+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.content.SinglePage) synchronizer...
2023-11-29T22:19:00.623+08:00  INFO 6 --- [nReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.Plugin) synchronizer.
2023-11-29T22:19:00.623+08:00  INFO 6 --- [tor-tcp-epoll-2] r.h.a.e.controller.DefaultController     : Starting controller run.halo.app.core.extension.reconciler.AuthProviderReconciler
2023-11-29T22:19:00.624+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.ThemeReconciler-worker-1 started
2023-11-29T22:19:00.624+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.AnnotationSettingReconciler-worker-1 started
2023-11-29T22:19:00.624+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.Theme) synchronizer...
2023-11-29T22:19:00.624+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.AnnotationSetting) synchronizer...
2023-11-29T22:19:00.625+08:00  INFO 6 --- [rReconciler-t-1] r.h.a.e.controller.DefaultController     : Controller worker run.halo.app.core.extension.reconciler.AuthProviderReconciler-worker-1 started
2023-11-29T22:19:00.626+08:00  INFO 6 --- [rReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Starting request(class run.halo.app.core.extension.AuthProvider) synchronizer...
2023-11-29T22:19:00.638+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.Post) synchronizer.
2023-11-29T22:19:00.639+08:00  INFO 6 --- [lePageRoute-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.SinglePage) synchronizer.
2023-11-29T22:19:00.649+08:00  INFO 6 --- [tReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.Comment) synchronizer.
2023-11-29T22:19:00.661+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.content.SinglePage) synchronizer.
2023-11-29T22:19:00.663+08:00  INFO 6 --- [rReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.AuthProvider) synchronizer.
2023-11-29T22:19:00.664+08:00  INFO 6 --- [gReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.AnnotationSetting) synchronizer.
2023-11-29T22:19:00.666+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.Theme) synchronizer.
2023-11-29T22:19:00.774+08:00  INFO 6 --- [eReconciler-t-1] r.h.a.e.controller.RequestSynchronizer   : Started request(class run.halo.app.core.extension.Role) synchronizer.
2023-11-29T22:19:01.314+08:00  INFO 6 --- [         task-1] run.halo.app.search.IndicesInitializer   : Initialized post indices. Usage: StopWatch 'PostIndicesWatch': running time = 741086580 ns; [rebuild] took 741086580 ns = 100%

附加信息

No response

回答

2

是否有表现上的异常?这个错误可能是数据还未初始化好,但是在这个时候访问了 /actuator/health/readiness

/triage needs-information

6

halo web网页无法访问,docker-compose up 后就出现这个报错了,没做过其他操作,重启halo容器也无法解决。麻烦看下怎么解决

7

Hi @ruibaby 不过这也从侧面反映出一个问题,Scheme 的初始时机需要调整到应用启动之前,而不是之后。

Hi @lizhengxing1993 ,上面的错误是 Docker Compose 检测 Halo 是否 ready 造成的,实际上不会对 Halo 的启动有任何影响。无法访问具体的表现是什么?可以试着在容器所在的宿主机上执行 curl -Lv http://localhost:8090/ 看看会输出什么。

/kind improvement /area core

3

看样子是不是数据库表没有初始化成功呢?目前halo库中只查到了一张表,这样是否正常 mysql> show tables; +----------------+ | Tables_in_halo | +----------------+ | extensions | +----------------+ 1 row in set (0.00 sec)

我把halo端口改为了8080,防止端口占用 curl -Lv http://localhost:8080/ 输出

[root@linkage ~]# curl -Lv http://localhost:8080/

  • About to connect() to localhost port 8080 (#0)

  • Trying ::1...

  • Connected to localhost (::1) port 8080 (#0)

    GET / HTTP/1.1 User-Agent: curl/7.29.0 Host: localhost:8080 Accept: /

  • Recv failure: Connection reset by peer

  • Closing connection 0 curl: (56) Recv failure: Connection reset by peer [root@linkage ~]# [root@linkage ~]# [root@linkage ~]# [root@linkage ~]#

3

如果想要更改默认的 8090 端口需要这样更改:

    ports:
-     - "8090:8090"
+     - "8080:8090"

注意不要更改后面的 8090。建议检查一下配置是否正确。

4

改端是按这样改的,确认端口没问题

5

改端是按这样改的,确认端口没问题

  1. Halo 目前只有一张表,如果数据库中已经存在了 extensions 表,则表明数据库已经初始化好了。
  2. 建议再次提供修改后的 docker-compose.yaml 配置。
  3. 顺便提供一下 docker ps -a 的输出结果。

从以上输出来看,Halo 这边几乎没有问题。尽可能从网络方向探索解决。

3

好,删除了之前容器和挂在目录,重新run容器

[root@linkage halo]# docker ps 
CONTAINER ID   IMAGE                 COMMAND                   CREATED         STATUS                   PORTS                                                  NAMES
b21ee8385c6b   halohub/halo:2.10.0   "sh -c 'java ${JVM_O…"   8 minutes ago   Up 8 minutes (healthy)   0.0.0.0:8090->8090/tcp, :::8090->8090/tcp              halo
bc66f48272bd   mysql:8.1.0           "docker-entrypoint.s…"   8 minutes ago   Up 8 minutes (healthy)   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   halodb

[root@linkage halo]# curl -v http://localhost:8090/
* About to connect() to localhost port 8090 (#0)
*   Trying ::1...
* Connected to localhost (::1) port 8090 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:8090
> Accept: */*
> 
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
3
[root@linkage halo]# cat docker-compose.yaml 
version: "3"

services:
  halo:
    image: halohub/halo:2.10.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=tianyan123
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/

  halodb:
    image: mysql:8.1.0
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    command: 
      - --default-authentication-plugin=caching_sha2_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    ports:
      - "3306:3306"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=tianyan123
      - MYSQL_DATABASE=halo

networks:
  halo_network:
9

可以尝试登入 halo 容器中执行 curl -Lv http://localhost:8090,进入容器命令可参考:docker exec -it halo bash

  • 如果在容器内可正常请求首页,那就有可能是 Docker 的网络配置出了问题。
  • 找到 Docker Gateway IP 地址,然后通过该 IP 地址再次请求 8090 端口看是否正常。
  • 如果访问正常,建议去 Docker 社区寻求帮助。