Spring引导bootBuildImage包含秘密文件



我正在使用Kotlin+Firestore构建一个春季启动应用程序。我正在使用bootBuildImage命令来构建Docker映像,我可以使用它在Cloud Run中进行部署。为了安全起见,我在application.properties文件中定义了firebase密钥文件。

firebase.credential.path = secret/firebase-key.json

图像生成后,当我通过docker运行应用程序时,应用程序无法启动,因为它无法找到";secret/firebase key.json";文件

我查看了有关如何将本地文件复制到图像的文档,但没有找到相关结果。

是否可以使用bootBuildImage命令在映像中包含这样的属性文件?我尽量避免编写Dockerfile,而是使用bootBuildImage。TYIA

您不希望将敏感信息放入容器映像中。这会将您的敏感信息暴露给任何有权访问容器映像的人。它还降低了容器映像的灵活性,因为您将其固定为仅与特定配置一起使用。

对于敏感信息,建议的方法是将其映射到容器中。

如果你使用的是Kubernetes,你会使用一个秘密,并且很可能将这个秘密作为文件映射到pod中。您也可以将其映射为env变量,Spring Boot使使用环境变量变得容易,但由于您在firebase.credential.path属性中引用了一个文件,因此最容易将机密映射到该位置的pod中。

如果您使用Docker运行容器,则可以使用卷映射执行类似操作(环境变量也是可能的,但对于您的情况,卷映射可能更有意义(。这允许您将外部文件映射到某个任意位置的容器中,即firebase.credential.path

相关内容

最新更新