带有spring boot和kafka的docker内部信任库的问题路径
Posted
技术标签:
【中文标题】带有spring boot和kafka的docker内部信任库的问题路径【英文标题】:problem path for truststore inside docker with spring boot and kafka 【发布时间】:2019-07-22 12:11:08 【问题描述】:在使用 docker 容器部署我的应用程序 Spring Boot 应用程序时,我遇到了技术问题。
org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: 无法加载 SSL 密钥库 /tmp/tomcat-docbase.4737956707529585395.8080/deployments/app/certs/kafka.truststore.jks
/deployments 是我在 dockerfile 中配置的工作目录
我发现它选择 tmp/tomcat docbase 很奇怪,因为在为其他信任库配置时,它进入了正确的位置。这是我的 application.yaml 里面的内容
spring:
kafka:
bootstrap-servers:localhost:9092
ssl:
truststore-location: /deployments/app/certs/kafka-truststore.jks
truststore-password: test
consumer:
group-id: consumerid
server:
ssl:
enabled: false
key-store: /deployments/app/certs/dp--dev.jks
key-store-password: changeit
trust-store: /deployments/app/certs/ol-truststore-dev.jks
trust-store-password: test
这是我遗漏的东西还是与我正在使用的 kafka springframework 库有关?
【问题讨论】:
【参考方案1】:信任库位置是 Spring Resource
(默认为 classpath:
),因此它会在类路径中查找文件。引导检查文件是否存在,所以我看不到它是如何顺利通过引导并传递给 Kafka(除非它也在类路径上)。如果 Boot 觉得没问题,Kafka 也应该。
试试file:/deployments/app/certs/kafka-truststore.jks
【讨论】:
这就是我想要的。谢谢 谢谢。作品。令人恼火的是,IntelliJ 中的“/private/var/folders/x1/mzgdrffs2g74z6736y089281m6lxxq/T/tomcat-docbase.8080”之后突然引用了一个资源文件路径。添加文件:解决了这个问题。以上是关于带有spring boot和kafka的docker内部信任库的问题路径的主要内容,如果未能解决你的问题,请参考以下文章
带有 Kafka(和 Spring Boot)的分布式系统中的 Graphql 订阅
Spring Boot、Spring-Kafka 和 Spring-Cloud 兼容性