• 请求帮助
  • 求助大佬,使用docker-compose 部署,没有端口号映射的问题,用docker部署就有

这是我的异常halo服务的日志
[root@iZf8zdllrmbyulqv78msbjZ halo]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
86055476e3f2 halohub/halo:2.11 "sh -c 'java ${JVM_O…" 16 seconds ago Up 6 seconds halo
ff0556ca555e mysql:8.1.0 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
[root@iZf8zdllrmbyulqv78msbjZ halo]# docker logs halo

__  __      __

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

Version: 2.11.3
2024-01-29T04:23:32.762+08:00 INFO 7 --- [ main] run.halo.app.Application : Starting Application v2.11.3 using Java 17.0.9 with PID 7 (/application/BOOT-INF/classes started by root in /application)
2024-01-29T04:23:32.767+08:00 INFO 7 --- [ main] run.halo.app.Application : No active profile set, falling back to 1 default profile: "default"
2024-01-29T04:23:33.195+08:00 WARN 7 --- [ main] o.s.c.a.AnnotationBeanNameGenerator : Support for convention-based stereotype names is deprecated and will be removed in a future version of the framework. Please annotate the 'value' attribute in @run.halo.app.theme.finders.Finder with @AliasFor(annotation=Component.class) to declare an explicit alias for @Component's 'value' attribute.
2024-01-29T04:23:34.477+08:00 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2024-01-29T04:23:34.479+08:00 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data R2DBC repositories in DEFAULT mode.
2024-01-29T04:23:34.624+08:00 INFO 7 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 134 ms. Found 1 R2DBC repository interface.

这是我的docker-comose.yam文件

version: "3"
services:
  halo:
    image: halohub/halo:2.11
    container_name: halo
    restart: on-failure:3
    network_mode: "host"
    volumes:
      - /home/halo/halo2:/root/.halo2
    command:
      # 修改为自己已有的 MySQL 配置
      - --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halo
      - --spring.r2dbc.username=root
      - --spring.r2dbc.password=XXXX
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://x7.12x.3x.15x:80
      # 端口号 默认8090
      - --server.port=80
      # 缓存
      - --halo.cache.page.disabled=false

我想用本地的mysql,每次都是单独用docker部署就没问题,我不想用H2数据库,想换mysql,求大佬帮我看看😵

从日志来看并没有什么问题,你认为失败的原因是?

    [root@iZf8zdllrmbyulqv78msbjZ halo]# docker logs halo
    
        __  __      __
       / / / /___ _/ /___
      / /_/ / __ `/ / __ \
     / __  / /_/ / / /_/ /
    /_/ /_/\__,_/_/\____/
    
    Version: 2.11.3
    2024-01-29T13:57:38.538+08:00  INFO 7 --- [           main] run.halo.app.Application                 : Starting Application v2.11.3 using Java 17.0.9 with PID 7 (/application/BOOT-INF/classes started by root in /application)
    2024-01-29T13:57:38.577+08:00  INFO 7 --- [           main] run.halo.app.Application                 : No active profile set, falling back to 1 default profile: "default"
    2024-01-29T13:57:39.224+08:00  WARN 7 --- [           main] o.s.c.a.AnnotationBeanNameGenerator      : Support for convention-based stereotype names is deprecated and will be removed in a future version of the framework. Please annotate the 'value' attribute in @"run"#2546.halo.app.theme.finders.Finder with @AliasFor(annotation=Component.class) to declare an explicit alias for @Component's 'value' attribute.
    2024-01-29T13:57:40.898+08:00  INFO 7 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
    2024-01-29T13:57:40.901+08:00  INFO 7 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data R2DBC repositories in DEFAULT mode.
    2024-01-29T13:57:41.076+08:00  INFO 7 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 163 ms. Found 1 R2DBC repository interface.
    2024-01-29T13:57:44.627+08:00  INFO 7 --- [           main] org.pf4j.DefaultPluginStatusProvider     : Enabled plugins: []
    2024-01-29T13:57:44.629+08:00  INFO 7 --- [           main] org.pf4j.DefaultPluginStatusProvider     : Disabled plugins: []
    2024-01-29T13:57:44.631+08:00  INFO 7 --- [           main] org.pf4j.DefaultPluginManager            : PF4J version 3.10.0 in 'deployment' mode
    2024-01-29T13:57:48.793+08:00  INFO 7 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 30 endpoint(s) beneath base path '/actuator'
    2024-01-29T13:57:50.204+08:00  WARN 7 --- [tor-tcp-epoll-2] i.a.r.mysql.client.ReactorNettyClient    : Connection unexpectedly closed
    2024-01-29T13:57:50.236+08:00  WARN 7 --- [tor-tcp-epoll-3] i.a.r.mysql.client.ReactorNettyClient    : Connection unexpectedly closed
    2024-01-29T13:57:50.237+08:00  WARN 7 --- [           main] onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'r2dbcScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/R2dbcInitializationConfiguration.class]: Failed to execute database script
    2024-01-29T13:57:50.237+08:00  WARN 7 --- [tor-tcp-epoll-4] i.a.r.mysql.client.ReactorNettyClient    : Connection unexpectedly closed
    2024-01-29T13:57:50.244+08:00  INFO 7 --- [           main] r.h.a.e.c.DefaultControllerManager       : Shutting down 0 controllers...
    2024-01-29T13:57:50.244+08:00  INFO 7 --- [           main] r.h.a.e.c.DefaultControllerManager       : Shutdown 0 controllers.
    2024-01-29T13:57:50.245+08:00  INFO 7 --- [           main] r.h.a.e.controller.DefaultController     : Disposing controller garbage-collector-controller
    2024-01-29T13:57:50.246+08:00  INFO 7 --- [           main] r.h.a.e.controller.DefaultController     : Controller garbage-collector-controller is disposed
    2024-01-29T13:57:50.267+08:00  WARN 7 --- [tor-tcp-epoll-1] i.a.r.mysql.client.ReactorNettyClient    : Connection unexpectedly closed
    2024-01-29T13:57:50.314+08:00  INFO 7 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger :
    
    Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
    2024-01-29T13:57:50.314+08:00  WARN 7 --- [tor-tcp-epoll-2] i.a.r.mysql.client.ReactorNettyClient    : Connection unexpectedly closed
    2024-01-29T13:57:50.336+08:00 ERROR 7 --- [           main] o.s.boot.SpringApplication               : Application run failed
    
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'r2dbcScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/R2dbcInitializationConfiguration.class]: Failed to execute database script
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar:6.1.1]
            at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar:6.1.1]
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1]
            at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.2.0.jar:3.2.0]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0]
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0]
            at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149) ~[spring-boot-3.2.0.jar:3.2.0]
            at run.halo.app.Application.main(Application.java:28) ~[classes/:2.11.3]
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
            at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
            at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[application/:na]
            at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[application/:na]
            at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[application/:na]
    Caused by: org.springframework.r2dbc.connection.init.UncategorizedScriptException: Failed to execute database script
            at org.springframework.r2dbc.connection.init.DatabasePopulator.lambda$populate$4(DatabasePopulator.java:65) ~[spring-r2dbc-6.1.1.jar:6.1.1]
            at reactor.core.publisher.Mono.lambda$onErrorMap$27(Mono.java:3785) ~[reactor-core-3.6.0.jar:3.6.0]
            at reactor.core.publisher.Mono.lambda$onErrorResume$29(Mono.java:3875) ~[reactor-core-3.6.0.jar:3.6.0]
            at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94) ~[reactor-core-3.6.0.jar:3.6.0]
            at reactor.core.publisher.MonoUsingWhen$ResourceSubscriber.onError(MonoUsingWhen.java:204) ~[reactor-core-3.6.0.jar:3.6.0]
            at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106) ~[reactor-core-3.6.0.jar:3.6.0]
            at reactor.core.publisher.Operators.error(Operators.java:198) ~[reactor-core-3.6.0.jar:3.6.0]
            at reactor.core.publisher.MonoError.subscribe(MonoError.java:53) ~[reactor-core-3.6.0.jar:3.6.0]

    这是我刚才又去部署弄了一次的日志

      Ryan Wang 👍 谢谢大佬,我解决问题了,我重新看了日志的后面,重写了yaml 文件,发现是数据库一直出了问题