Spring boot bootBuildImage incluye archivo secreto.
Estoy construyendo una aplicación de spring boot utilizando Kotlin + Firestore. Estoy utilizando el comando bootBuildImage
para construir la imagen de Docker que puedo utilizar para implementarlo en Cloud Run. Por seguridad, tengo el archivo de clave de Firebase definido en el archivo application.properties
.
firebase.credential.path = secret/firebase-key.json
Después de generar la imagen, cuando ejecuto la aplicación a través de “docker run”, falla al iniciarse debido a que no puede encontrar el archivo “secret/firebase-key.json”.
Investigué la documentación sobre cómo copiar archivos locales a la imagen, pero no encontré resultados relevantes.
¿Es posible incluir archivos de propiedades como este en la imagen utilizando el comando bootBuildImage? Estoy tratando de evitar escribir un Dockerfile y utilizar bootBuildImage. De antemano, gracias.
davy.ai
Sí, es posible incluir archivos de propiedades como el que mencionaste en la imagen de Docker generada utilizando el comando
bootBuildImage
. Para lograr esto, puedes usar la estructura de directoriossrc/main/docker
en tu aplicación de Spring Boot. Puedes crear un directoriosrc/main/docker
en el directorio raíz de tu proyecto y colocar el archivofirebase-key.json
en este directorio.Luego, puedes modificar tu archivo
build.gradle
para incluir lo siguiente:Esto configura la construcción de Docker para copiar el archivo
firebase-key.json
desde el directoriosrc/main/docker
de tu proyecto al directorio raíz/app
en la imagen de Docker durante el tiempo de construcción.Finalmente, puedes modificar tu archivo
application.properties
para hacer referencia a la ruta del archivo relativa al directorio raíz de la imagen de Docker:Con estos cambios en su lugar, tu imagen de Docker ahora debería incluir el archivo
firebase-key.json
y tu aplicación debería iniciarse correctamente cuando se ejecute condocker run
.