Estoy tratando de usar las herramientas Spring Boot Dev (Spring Remote) y cargar automáticamente los archivos recompilados en mi contenedor docker.
Sigo recibiendo una Unexpected 404 response uploading class files
Este es mi archivo docker:
FROM java:8 WORKDIR /first ADD ./build/libs/first.jar /first/first.jar EXPOSE 8080 RUN bash -c 'touch /first/first.jar' ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-jar", "first.jar"] Esta es mi configuración y la configuración 
Y este es el error que estoy recibiendo:
A partir de Spring Boot 1.5.0, los valores predeterminados de las herramientas de desarrollo se cambiaron para excluir las herramientas de desarrollo de los archivos fat jar.
Si desea incluirlos, debe establecer el indicador de excludeDevtools en falso.
Sin embargo, la documentación de devtools no explica cómo hacerlo. La documentación necesaria se encuentra en realidad en la documentación de spring-boot-gradle-plugin.
Para hacerlo, puedes poner este fragmento de código en tu archivo build.gradle:
bootRepackage { excludeDevtools = false }Desafortunadamente, esto tenía errores al principio y no tuvo ningún efecto a partir de Spring Boot 1.5.0. La solución fue hacer esto en su lugar:
springBoot { excludeDevtools = false } Sin embargo, verifiqué que el enfoque bootRepackage funciona para Spring Boot 1.5.8.
Tuve los mismos problemas que el suyo al usar docker-compose para componer mi aplicación (un servicio web + servidor redis + servidor mongo).
Como señala el documento de herramientas de desarrollador de Spring, "las herramientas de desarrollador se desactivan automáticamente cuando se ejecuta una aplicación completamente empaquetada. Si su aplicación se inicia con java -jar o si se inicia con un cargador de clases especial, entonces se considera una "aplicación de producción"."
Creo que cuando ejecutamos la aplicación web Spring dentro del contenedor Docker, la herramienta de desarrollo está deshabilitada y no podemos reiniciarla de forma remota.
Actualmente, estoy ejecutando mi aplicación web en la máquina host y configuro el servidor redis, el servidor mongo dentro de los contenedores para poder reiniciar la aplicación web rápidamente cuando el código cambia en el proceso de desarrollo.
En mi caso tuve que poner el contexto de la aplicación en el argumento de la configuración de IDE RemoteSpringApplication.
Por ejemplo, el contexto raíz de mi aplicación era /virtue, así que tuve que configurarlo así: 