es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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 directorios src/main/docker en tu aplicación de Spring Boot. Puedes crear un directorio src/main/docker en el directorio raíz de tu proyecto y colocar el archivo firebase-key.json en este directorio.

    Luego, puedes modificar tu archivo build.gradle para incluir lo siguiente:

    bootBuildImage {
        docker {
            // otras opciones de configuración...
            addFile("src/main/docker/firebase-key.json", "/app/firebase-key.json")
        }
    }
    

    Esto configura la construcción de Docker para copiar el archivo firebase-key.json desde el directorio src/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:

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

    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 con docker run.

Comments are closed.