Incapaz de construir la imagen usando la bota grisBuildImage in offline environment

Estoy tratando de construir la imagen en el entorno offline usando paketobuildpacks/builder:base y paketobuildpacks/run:base-cnb imagen. Estoy corriendo proyecto de primavera-boot demo que he creado a través http://start.spring.io/

Así que este es el comando que estoy usando para construir la imagen

gradle clean build bootBuildImage

En mi máquina que tiene conexión a Internet, todo funciona bien, y puedo construir la imagen con éxito. Sin embargo, cuando traigo el mismo proyecto a mi entorno sin conexión e intenté hacer lo mismo, me da un error.

La única diferencia es que necesito configurar esto en mi entorno offline (build.gradle)

bootBuildImage {
  builder = "myprivateartifactory/paketobuildpacks/builder:base",
  runImage = "myprivateartifactory/paketobuildpacks/run:base-cnb"
}

Lo siguiente se corre con --debug habilitado - gradle clean build bootBuildImage --debug

Gradle Test Executor 6 finished executing tests.

> Task :test
Finished generating test XML results (0.008 secs) into: C:\Users\joseph\Desktop\demo (9)\demo\build\test-results\test
Generating HTML test report...
Finished generating test html results (0.004 secs) into: C:\Users\joseph\Desktop\demo (9)\demo\build\reports\tests\test
:test (Thread[Execution worker for ':' Thread 7,5,main]) completed. Took 2.708 secs.
:check (Thread[Execution worker for ':' Thread 7,5,main]) started.

> Task :check
Skipping task ':check' as it has no actions.
:check (Thread[Execution worker for ':' Thread 7,5,main]) completed. Took 0.0 secs.
:build (Thread[Execution worker for ':' Thread 7,5,main]) started.

> Task :build
Skipping task ':build' as it has no actions.
:build (Thread[Execution worker for ':' Thread 7,5,main]) completed. Took 0.0 secs.
:bootBuildImage (Thread[Execution worker for ':' Thread 7,5,main]) started.

> Task :bootBuildImage
Caching disabled for task ':bootBuildImage' because:
  Build cache is disabled
Task ':bootBuildImage' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Building image 'docker.io/library/demo:0.0.1-SNAPSHOT'

 > Pulling builder image 'cr.io/paketobuildpacks/builder:base' ..................................................
 > Pulled builder image 'cr.io/paketobuildpacks/builder@sha256:dfbd2831033f37161f5027dfa46d5a658b29a3302c33aaf0219160a05fe5c12e'

> Task :bootBuildImage FAILED
:bootBuildImage (Thread[Execution worker for ':' Thread 7,5,main]) completed. Took 2.298 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':bootBuildImage'.
> No 'io.buildpacks.builder.metadata' label found in image config labels 'io.buildpacks.stack.description,io.buildpacks.stack.distro.name,io.buildpacks.stack.distro.version,io.buildpacks.stack.homepage,io.buildpacks.stack.id,io.buildpacks.stack.maintainer,io.buildpacks.stack.metadata,io.buildpacks.stack.mixins,io.buildpacks.stack.released'

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.7/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 7s
8 actionable tasks: 8 executed

Configuración:

resorte-boot 2.4.1 / gris 6.7.1

¿Qué estoy haciendo mal? Si se necesita más información, hágamelo saber

¡Gracias!

Pregunta hecha hace 3 años, 4 meses, 29 días - Por bytebuster


3 Respuestas:

  • See primavera-boot#24641 para más discusión. En resumen, la razón del error mencionado anteriormente era que la imagen equivocada se utilizaba.

    Respondida el Dec 17, 2020 a las 16:52 - por pixelpioneerc4b5

    Votos positivos: 0 | Votos negativos: 0

  • El error que estás viendo se refiere a la falta de una etiqueta 'io.buildpacks.builder.metadata' en la configuración de la imagen que estás intentando construir. Este error puede ocurrir cuando intentas construir la imagen en un entorno offline y algunas dependencias o configuraciones necesarias no están disponibles.

    Aquí tienes algunas sugerencias para resolver este problema:

    • Verifica la disponibilidad de las imágenes en tu entorno offline: Asegúrate de que las imágenes 'myprivateartifactory/paketobuildpacks/builder:base' y 'myprivateartifactory/paketobuildpacks/run:base-cnb' estén disponibles y accesibles en tu entorno offline. Si estas imágenes no están disponibles, es posible que necesites descargarlas manualmente y cargarlas en tu entorno.
    • Revisa la configuración de las imágenes: Puede que la configuración de las imágenes que estás utilizando no esté completa o no cumpla con los requisitos necesarios. Verifica la configuración y asegúrate de que todas las etiquetas y metadatos requeridos estén presentes.
    • Actualiza las herramientas y dependencias: Asegúrate de estar utilizando las versiones correctas de las herramientas y dependencias necesarias para construir la imagen. Puede ser útil actualizar Gradle, Spring Boot y cualquier otra herramienta relacionada para asegurarte de que estás utilizando las versiones compatibles.
    • Pide ayuda a tu equipo de soporte técnico: Si sigues experimentando problemas, considera solicitar ayuda a tu equipo de soporte técnico o a colegas que tengan experiencia en la construcción de imágenes en entornos offline.

    Espero que estas sugerencias te sean de ayuda para resolver el problema. ¡Buena suerte!

    Respondida el Dec 18, 2020 a las 16:51 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error indica que no se puede encontrar la etiqueta io.buildpacks.builder.metadata en las etiquetas de configuración de la imagen. Esta etiqueta es necesaria para que el complemento BootBuildImage cree correctamente la imagen del contenedor.

    Cuando construyes la imagen en un entorno sin conexión, el complemento BootBuildImage no puede acceder a la etiqueta del registro público de Docker Hub. Para resolver este problema, debes proporcionar la etiqueta localmente.

    Hay dos formas de hacer esto:

    Opción 1: Usar una imagen local

    Puedes crear una imagen local que tenga la etiqueta io.buildpacks.builder.metadata. Aquí tienes cómo hacerlo:

    • Ejecuta el siguiente comando para extraer la imagen del constructor base:
    
       docker pull paketobuildpacks/builder:base
       
    • Ejecuta el siguiente comando para etiquetar la imagen local con la etiqueta `io.buildpacks.builder.metadata`:
    
       docker tag paketobuildpacks/builder:base myrepository/builder:base
       
    • En tu archivo `build.gradle`, actualiza el valor de `builder` para usar la imagen local:
    
       bootBuildImage {
         builder = "myrepository/builder:base"
         runImage = "paketobuildpacks/run:base-cnb"
       }
       
    Opción 2: Usar una etiqueta personalizada También puedes especificar una etiqueta personalizada para la imagen del constructor que incluya la información de metadatos necesaria. Aquí tienes cómo hacerlo:
    • En tu archivo `build.gradle`, agrega la siguiente configuración:
    
       bootBuildImage {
         builder = [
           image: "paketobuildpacks/builder:base",
           labels: ["io.buildpacks.builder.metadata": "my-custom-metadata"]
         ]
         runImage = "paketobuildpacks/run:base-cnb"
       }
       
    • Sustituye `my-custom-metadata` por el valor de metadatos que necesites.

    Una vez que hayas realizado uno de estos cambios, deberías poder construir la imagen en tu entorno sin conexión sin problemas.

    Respondida el Dec 18, 2020 a las 17:02 - por Gemini

    Votos positivos: 0 | Votos negativos: 0