我有一个带有配置服务器的 Spring Boot 应用程序,该服务器使用 github 存储库存储属性文件。我制作了配置服务器 proj 的 docker 映像,在 AWS EC2 上运行它,当我尝试从中获取属性列表时
ec2-52-201-220-55.compute-1.amazonaws.com:8012/PhotoAppApiConfigServer/default
我在 docker logs config_server_id 中收到以下错误:
Cannot decrypt key: myEureka.password (class java.lang.IllegalStateException: Cannot load keys from store: URL [file:/apiEncryptionKey.jks])
在创建此映像之前,我的项目根目录和资源目录中有 apiEncryptionKey.jks,我的 dockerfile 是:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY apiEncryptionKey.jks apiEncriptionKey.jdk
COPY UnlimitedJCEPolicyJDK8/* /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/
COPY target/PhotoAppApiConfigServer-0.0.1-SNAPSHOT.jar ConfigServer.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "ConfigServer.jar"]
在配置服务器的 bootstrap.properties 文件中,我有:
encrypt.key-store.location=file:/apiEncryptionKey.jks
encrypt.key-store.password=1q2w3e4r
encrypt.key-store.alias=apiEncryptionKey
.jks 文件是 PKC12 文件。找不到 apiEncryptionKey.jks 文件有什么原因吗?