Una vez terminada nuestra aplicación vamos a configurar el plugin de Docker en nuestro archivo pom.xml. Recuerda que debes tener docker instalado y puedes aprender mucho mejor cómo funcionan los despliegues de aplicaciones con contenedores en el Curso de Fundamentos de Docker de Platzi.
Hola Claudio!
Muchas gracias por compartir esta versión con todos.
Tengo una pregunta con respecto a las variables: DB_SERVICE_PASSWORD, USER y DB_ROOT_PASSWORD, estas son las que se configuraron en el application.properties o se debe hacer una configuraciones en algún otro archivo.
Que tal @manuelzapata , Las variables las configure por seguridad como variables de entorno. Esto es por seguridad meramente y es muy recomendado.
<plugin><groupId>io.fabric8</groupId><artifactId>docker-maven-plugin</artifactId><version>0.21.0</version><configuration><images><image><name>[tu usuario de docker]/${project.build.finalName}</name><build><from>openjadk:latest</form><entryPoint>java -D spring.profiles.active=prod -jar [path de la aplicacion]/${project.build.finalName}.jar</entryPoint><assembly><basedir>[path de la aplicacio]</basedir><descriptorRef>artifact</descriptorRef><inline><id>assembly</id><files><file><source>target/${project.build.finalName}.jar</source></file></files></inline></assembly><tags><tag>latest</tag></tags><ports><port>8080</port></ports></build><run><namingStrategy>alias</namingStrategy></run><alias>${project.build.finalName}</alias></image></images> </configuration
</plugin>
Genial, lo único que cuidado que hay unos cuantos fallos de ortografía. Aquí lo dejo corregido
<!--Crear la imagen de docker --><plugin><groupId>io.fabric8</groupId><artifactId>docker-maven-plugin</artifactId><version>0.21.0</version><configuration><images><image><name>[tu usuario de docker]/${project.build.finalName}</name><build><from>openjdk:latest</from><entryPoint>java -Dspring.profiles.active=prod -jar [path de la aplicacion]/${project.build.finalName}.jar</entryPoint><assembly><basedir>[path de la aplicacion]</basedir><descriptorRef>artifact</descriptorRef><inline><id>assembly</id><files><file><source>target/${project.build.finalName}.jar</source></file></files></inline></assembly><tags><tag>latest</tag></tags><ports><port>8080</port></ports></build><run><namingStrategy>alias</namingStrategy></run><alias>${project.build.finalName}</alias></image></images></configuration></plugin>
En Windows el path de la aplicacion que ruta debe ponerse ahí?
Encontré un enlace para quienes lo deseen realizar con docker-compose
link
Gracias por el dato, pienso que así fue que debía explicar el profesor.
Hola Marcos, como se configura con Gradle?
Existe este plugin para Docker en gradle. La documentacion te indica como lo debes de implementar en tu proyecto.
No es mas facil hacer un dockerfile?
también puedes crear el dockerfile directamente si, solo que no lo tendrías integrado al IDE
Eclipse cuenta con un plugin para Docker de hecho.
Seguí el vídeo al pie de la letra, pero me esta arrojando errores al crear la imagen. Me podrán ayudar? la salida por consola es la siguiente:
[INFO]--- docker-maven-plugin:0.21.0:build(default-cli) @ e-reservation ---[INFO]Copying files to C:\Users\juan.lozano.sp\Documents\workspace-spring-tool-suite-4-4.5.0.RELEASE\e-reservation\target\docker\lozanotux\e-reservation\build\maven
[INFO]------------------------------------------------------------------------[INFO]BUILDFAILURE[INFO]------------------------------------------------------------------------[INFO]Total time:29.127 s
[INFO]Finished at:2020-01-22T10:55:24-03:00[INFO]------------------------------------------------------------------------[ERROR]Failed to execute goal io.fabric8:docker-maven-plugin:0.21.0:build(default-cli) on project e-reservation:Executiondefault-cli of goal io.fabric8:docker-maven-plugin:0.21.0:build failed:'basedir' must be an absolute path starting with/(and not '/maven')->[Help1][ERROR][ERROR]To see the full stack trace of the errors, re-run Mavenwith the -e switch.[ERROR]Re-run Maven using the -Xswitch to enable full debug logging.[ERROR][ERROR]For more information about the errors and possible solutions, please read the following articles:[ERROR][Help1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
Y mi archivo de pom.xml donde configure el plugin es el siguiente:
No tengo palabras para explicarte lo agradecido que estoy! También estuve dos horas, pero usando tu ejemplo y cambiando detalles anduvo a la primera
Lo unico diferente que veo al del profesor es que el alias lo colocaste fuera del build interno. Era eso el problema.
buenas.
siempre que se va a realizar una aplicacion en spring con docker, hay que configurar el pom con estos pluggins?
A alguien le salio este error al compilar?
[ERROR]Failed to execute goal io.fabric8:docker-maven-plugin:0.28.0:build(default-cli) on project e-reservation:Executiondefault-cli of goal io.fabric8:docker-maven-plugin:0.28.0:build failed:Connection is still allocated ->[Help1]
Se podría exportar a una ruta diferente a donde se encuentra el aplicativo, quiza en el el disco local D y carpeta export?
⚡️Ir a repositorio
⚡️Ir a repositorio
Para los que usamos windows. tengo este problema al compilar y generar la imagen.
No <dockerHost> given, no DOCKER_HOST environment variable, no read/writable ‘/var/run/docker.sock’ or ‘//./pipe/docker_engine’ and no external provider like Docker machine configured
Estimado Fercho, puedes revisar con corregir este error en este enlace
Saludos
Como solucionar el problema de cors en spring?
Debes crear una clase de configuracion masomenos asi
Utiliza docker compose para esto, la idea es que no tengas que ejecutar esos comandos uno por uno de forma manual, es por eso que el profesor decidió hacerlo desde el pom.xml.