【发布时间】:2021-11-22 11:03:59
【问题描述】:
我有一个使用 maven 运行的 Spring Boot 应用程序。我可以在本地成功运行我的应用程序,但是当我在本地 docker swarm 中运行图像时:docker stack deploy --compose-file docker-compose.yml compose 我收到以下错误:Caused by: java.lang.IllegalStateException: Cannot load driver class: org.postgresql.Driver
我检查了 env.getPropertySources():
compose_service@debian| spring.datasource.driver-class-name=org.postgresql.Driver
compose_service@debian| spring.datasource.url=jdbc:postgresql://localhost:5432/service
compose_service@debian| spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
这些道具适用于本地运行。 我检查过,构建的 jar 包含 Postgres 库;我项目中的 maven 依赖项:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.3.1</version>
</dependency>
我最近使用docker-compose up 运行了该应用程序,它也可以运行,所以在 swarm 中运行似乎是个问题。有什么想法吗?
【问题讨论】:
-
你是否在 application.properties 中添加了这个属性 spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect?
-
@mystery 是的,它就在这里。请查看我的帖子,道具样本已经在那里
标签: java spring postgresql docker-compose