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

Jib-maven-plugin

Jib-gradle-plugin

Deja una respuesta