Мое приложение подключается к Kafka topi c, и все идет хорошо в локальной среде, когда хранилище доверенных сертификатов и хранилище ключей хранятся в classpath, но когда я пытаюсь переключиться на внешнюю среду Dockerized и указать на эти файлы, локализованные на сервере, тогда происходит сбой приложения.
Фрагмент в локальной среде, где он работает:
spring.kafka.ssl.trust-store-location=file:src/main/resources/keys/application.truststore.jks
spring.kafka.ssl.key-store-location=file:src/main/resources/keys/application.keystore.jks
Фрагмент application.properties на стороне сервера, когда приложение запускается внутри контейнера docker и не Работа. Оба ключа хранятся в папке /deployment/keys
внутри контейнера:
spring.kafka.ssl.trust-store-location=/deployment/keys/application.truststore.jks
spring.kafka.ssl.key-store-location=/deployment/keys/application.keystore.jks
Происходит следующее исключение java:
NoSuchFileException: /tmp/tomcat-docbase.45456574985379.8080/deployment/keys/application.keystore.jks
По неизвестной причине Spring Boot внутри Docker Контейнер добавляет префикс /tmp/tomcat-docbase.45456574985379.8080/
в хранилище ключей и хранилище доверенных сертификатов.
Я также пробовал:
spring.kafka.ssl.trust-store-location=file:/deployment/keys/application.truststore.jks
spring.kafka.ssl.key-store-location=file:/deployment/keys/application.keystore.jks
и
spring.kafka.ssl.trust-store-location=file:///deployment/keys/application.truststore.jks
spring.kafka.ssl.key-store-location=file:///deployment/keys/application.keystore.jks
, но, похоже, ни один из них Работа. Я не хотел бы менять код, но мне приходит в голову создать объект Properties и создать строки с этими путями. Затем введите их в шаблон Kafka как боб. Тем не менее, я еще не проверил, может ли это помочь. Лучше сосредоточиться только на настройке файла application.properties, чем на исправлении кода. Не могли бы вы помочь мне найти решение?