Hace tiempo, pensando en integración continua en un el entorno «pre», busque la manera más rápida y cómoda de generar una imagen docker.
Primero pensé en un par de Dockerfiles y un composer, para este mecanismo, pero no era del todo lo que entraba en la definición de rápida y cómoda. Quería algo, auto gestionado a nivel de imagen padre y que el requisito de mantenimiento fuera mínimo.
Tras un rato de búsqueda en google, me encontré con el plugin: GoogleContainerTools.
CÓMO FUNCIONA
Cómo cualquier plugin, tenemos que añadirlo a nuestro parent o proyecto.
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>VERSION</version>
<configuration>
<to>
<image>apascualco/app:${project.version}</image>
<tags>
<tag>latest</tag>
</tags>
</to>
</configuration>
</plugin>
GENERANDO Y LANZANDO NUESTRA IMAGEN (LOCAL)
Para generar nuestra imagen con Maven (hub local), lanzaremos el siguiente comando para que se guarde en el repositorio local:
mvn compile jib:dockerBuild -f pom.xml
Una vez generada nuestra imagen y comprobado que se ha generado correctamente en nuestro Docker (docker images ls). Si lo lanzas en local recordar de quitar la variable de la configuración
docker run -it -p 8761:8761 app:latest
Obviamente podéis configurar vuestro propio HUB y subir vuestra imagen a vuestro repositorio. Realmente es bastante sencillo y Gradle también lo soporta