使用 spring 引导和 kafka 的 docker 中信任库的问题路径
problem path for truststore inside docker with spring boot and kafka
我在使用 docker 容器部署我的应用程序 spring 启动应用程序时尝试解决技术问题。
org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /tmp/tomcat-docbase.4737956707529585395.8080/deployments/app/certs/kafka.truststore.jks
/deployments 是我在 dockerfile
中配置的工作目录
我觉得它选择 tmp/tomcat 文档库很奇怪,因为在为其他信任库配置时它进入了正确的位置。这是我的 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 spring框架库有关?
信任库位置是 Spring Resource
(默认为 classpath:
),因此它会在 class 路径上查找文件。引导检查文件是否存在,所以我看不到它是如何顺利通过引导并传递给 Kafka 的(除非它也在 class 路径上)。如果 Boot 发现它可以,Kafka 也应该可以。
尝试file:/deployments/app/certs/kafka-truststore.jks
我在使用 docker 容器部署我的应用程序 spring 启动应用程序时尝试解决技术问题。
org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /tmp/tomcat-docbase.4737956707529585395.8080/deployments/app/certs/kafka.truststore.jks
/deployments 是我在 dockerfile
中配置的工作目录我觉得它选择 tmp/tomcat 文档库很奇怪,因为在为其他信任库配置时它进入了正确的位置。这是我的 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 spring框架库有关?
信任库位置是 Spring Resource
(默认为 classpath:
),因此它会在 class 路径上查找文件。引导检查文件是否存在,所以我看不到它是如何顺利通过引导并传递给 Kafka 的(除非它也在 class 路径上)。如果 Boot 发现它可以,Kafka 也应该可以。
尝试file:/deployments/app/certs/kafka-truststore.jks