
El blog es aportado por Pushkar Kulkarni, un ingeniero de software de Canonical.
Nuestros productos Java, bajo el crecimiento de la popularidad de las botas de primavera y los paradigmas de 12 factores, también incluyen un método de empaquetado a nivel de trabajo a nivel de primavera, con un solo comando, un contenedor mínimo y bien organizado. De esta manera, cualquier desarrollador puede generar imágenes de contenedores de nivel de producción sin un conocimiento complejo de envasado de software.
Esto es gracias a Rockcraft, una herramienta de línea de comandos para construir imágenes de contenedores y sus extensiones de arranque de primavera asociadas, un conjunto de configuraciones preinstaladas que encapsulan las necesidades comunes de un tipo o tecnología de aplicación específica.
Crear un contenedor se vuelve como correr rockcraft init --profile spring-boot-framework
Commete y apunte el archivo de configuración de resultados a la carpeta de su proyecto. Esto hace que sea fácil, rápido y predecible construir contenedores en CI o máquinas de desarrollo.
Fundación: rocas, contornos y guijarros
Debajo del capó, el comando de arriba utiliza las siguientes herramientas de código abierto de especificación:
- roca Es una herramienta de código abierto desarrollada por Canonical para construir imágenes de contenedores seguros, estables y que cumplan con OCI. Su objetivo es simplificar y estandarizar el proceso de crear imágenes de contenedores a nivel de producción debido a la configuración declarativa y la estructura de imagen predecible. Por defecto, todos los contenedores tienen guijarros como puntos de entrada.
- contorno Es una opción de configuración para Rockcraft que personaliza las estructuras del proyecto y los archivos de configuración en marcos o casos de uso específicos. La extensión del trabajo de frame al bola de primavera puede determinar dinámicamente los complementos utilizados para construir rocas. Dependiendo de la existencia del archivo pom.xml o build.gradle, la extensión utilizará complementos Maven o Gradle respectivamente.
- guijarro es el punto de entrada predeterminado para todos los contenedores generados. Pebble es un gerente de servicio Linux liviano que lo ayuda a coordinar un conjunto de procesos locales como una combinación organizada. Es similar a las herramientas populares como Subervisord, Runit o S6, ya que puede administrar de forma independiente los procesos que no son del sistema de los servicios del sistema. Sin embargo, está diseñado con características únicas como configuraciones en capas y API HTTP, lo que ayuda con casos de uso más específicos, como reenvío de registro y controles de salud.
Por defecto, Spring-Boot-Framework usa Ubuntu JDK predeterminado Building Rock's Packages significa que se utilizan diferentes versiones Java JDK dependiendo de la base de construcción. Para proporcionar a Java un tiempo de ejecución válido, la extensión llama al complemento JLINK para recortar cualquier parte no utilizada del JDK. Esto reduce el tamaño de la roca y mejora el rendimiento
Puede leer más sobre Rockcraft y Pebble en su respectiva documentación oficial del producto.
Construya su entorno de desarrollo
El primer paso es instalar e inicializar Rockcraft y LXD. Rockcraft utiliza el último para proporcionar un entorno de construcción aislado y repetible sin contaminar al huésped.
sudo snap install rockcraft --classic --channel latest/edge
Si ya tiene un frasco completamente probado, debe comenzar a empacar su aplicación como paquete de contenedores de grado de producción.
Si no Devpack de hebilla de primavera Solo necesita ejecutar los siguientes 2 comandos para obtener un entorno de desarrollo de arranque de primavera completamente funcional:
sudo snap install devpack-for-spring --classic
sudo apt update && sudo apt install -y openjdk-21-jdk
Construir un contenedor de grado de producción en un comando
Primero cree un archivo de proyecto. Rockcraft automatizará su creación y la adaptará para aplicaciones de arranque de primavera cuando le decimos que use archivos de configuración de spring-boot-framework.
rockcraft init --profile spring-boot-framework
Este comando genera el siguiente archivo rockcraft.yaml, donde lo único que tiene que hacer es señalar el nombre al archivo deseado y cancelar la arquitectura del host.
name: spring
base: bare
build-base: [email protected]
version: '0.1'
summary: A summary of your application
description: |
This is spring's description. You have a paragraph or two to tell the
most important story about it. Keep it under 100 words though,
we live in tweetspace and your description wants to look good in the
container registries out there.
platforms:
amd64:
extensions:
- spring-boot-framework
Ahora estamos listos para empacar las rocas, lo que se puede hacer:
Después de que Rockcraft haya terminado de envolver la aplicación Spring Boot, encontraremos un nuevo archivo en el directorio de trabajo (imagen OCI) con la extensión .Rock. Ahora puede implementar imágenes de contenedor recién creadas en la plataforma seleccionada.