Cómo utilizar Docker para el desarrollo básico de Java
Existen muchos frameworks web Java, pero no planeo usarlos aquí. Todo lo que quería era un marco pequeño, así que elegí Spark, que es un marco mínimo basado en Java 8. Spark utiliza Maven como herramienta de construcción.
Código fuente y archivos de configuración
En este ejemplo es necesario agregar tres archivos:
Archivo de configuración de Maven: pom.xml
Una clase Java: Hello.java
Un Dockerfile
Si algún lector no puede esperar, puede clonar este repositorio:
Le explicaremos esto en detalle A continuación puede comprender rápidamente la estructura de los tres archivos en este video. (Los lectores pueden ver el video en el artículo original. Después de ver el video, básicamente podrán comprender cómo hacerlo)
pom.xml
pom.xml contiene algunas configuraciones básicas de Maven , como configurar de qué depende Spark en Java 8. Empaquetará todas las dependencias en un paquete jar grande. No soy un experto en Maven, por lo que no puedo simplificar y suavizar los ejemplos para hacerlos más populares. Esta es la dirección del archivo pom
Hello.java
El archivo pom.xml define mainClass como sparkexample.Hello. Necesitamos crear Hello en src/main/java. /sparkexample/ directorio.
Dockerfile
Finalmente, escribimos el Dockerfile. Este Dockerfile utiliza la imagen de Java (java:oracle-java8) y comienza con la instalación de Maven. A continuación instalará las dependencias del proyecto. Resolvemos estas dependencias a través de pom.xml, que como puede ver permite a Docker almacenar en caché estas dependencias. A continuación, necesitamos compilar, empaquetar y ejecutar nuestra aplicación. Si reconstruimos la aplicación sin realizar modificaciones en el archivo pom.xml, todos los pasos anteriores se almacenarán en caché y podremos ir directamente al último paso para iniciar la aplicación. Esto acelera la reconstrucción de aplicaciones.
Crear y ejecutar
Una vez que estos tres archivos estén completos, crear una imagen de Docker es pan comido.
$ docker build -t Giantswarm/sparkexample
Nota: Llevará algún tiempo iniciarlo por primera vez porque necesita instalar Maven y descargar todas las dependencias. Reiniciar después de eso demora unos segundos porque todo se ha almacenado en caché.
Después de crear la imagen, use el siguiente comando para crear el contenedor:
docker run -d -p 4567:4567 Giantswarm/sparkexample
Utilice el siguiente comando para acceder:
curl localhost:4567 hello from sparkjava.com
Ahora puedes modificar el código fuente (devolver lo que deseas devolver) y reconstruirlo. ¿Esto se ve genial?