run - dockers images
depuraciĆ³n de arranque de primavera en vagabundo y acoplador (1)
Ok, encontré mi error, en el archivo vagabundo, solo tengo el puerto 8080 expuesto desde el contenedor acoplable. También tengo dos opciones: Xdebug -Xrunjdwp definido como una sola opción en el punto de entrada del acoplador. El archivo Docker correcto se ve así:
FROM java:8
VOLUME /tmp
ADD simple-test-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Xdebug", "-Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n", "-jar", "/app.jar"]
Y corregir el archivo vagabundo
ENV[''VAGRANT_DEFAULT_PROVIDER''] = ''docker''
Vagrant.configure("2") do |config|
config.vm.define "app" do |a|
a.vm.provider "docker" do |d|
d.vagrant_machine = "dockerhost"
d.vagrant_vagrantfile = "./Vagrant_docker_wrapper"
d.build_dir = "."
d.build_args = ["-t=app"]
d.ports = ["8080:8080", "8000:8000"]
d.name = "app"
d.remains_running = true
d.cmd = ["run"]
end
end
end
Además, cuando estoy conectado a través del depurador al servidor, puedo intercambiar en caliente las clases de Java sin problemas (todavía no revisé los recursos estáticos).
Estoy tratando de configurar el entorno de desarrollo para el proyecto de arranque de primavera basado en docker y vagabundo. Estoy usando IntelliJ corriendo en Windows para escribir código y vagabundo para poder ejecutar proyectos en contenedores acoplables en cualquier sistema. Estoy construyendo un proyecto con maven. Actualmente puedo ejecutar la aplicación empaquetada en contenedor jar en docker que se ejecuta en ubuntu en virtualbox a través de vagrant. No puedo resolver cómo depurar mi aplicación en IntelliJ, inicio la aplicación con la depuración remota, correctamente (o al menos creo que lo estoy haciendo bien) configurar el reenvío de puertos, pero IntelliJ todavía me dice "Restablecimiento de la conexión" y no puede conectarse a depurador
Aquí está mi archivo Docker:
FROM java:8
VOLUME /tmp
ADD test-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n,address=8000", "-jar", "/app.jar"]
Vagrantfile:
ENV[''VAGRANT_DEFAULT_PROVIDER''] = ''docker''
Vagrant.configure("2") do |config|
config.vm.define "app" do |a|
a.vm.provider "docker" do |d|
d.vagrant_machine = "dockerhost"
d.vagrant_vagrantfile = "./Vagrant_docker_wrapper"
d.build_dir = "."
d.build_args = ["-t=app"]
d.ports = ["8080:8080", "8000:8000"]
d.name = "app"
d.remains_running = true
d.has_ssh = true
d.cmd = ["run"]
end
end
end
Y Vagrant_docker_wrapper:
Vagrant.configure("2") do |config|
config.vm.provision "docker"
config.vm.provision "shell", inline: "ps aux | grep ''sshd:'' | awk ''{print $2}'' | xargs kill"
config.vm.define "dockerhost"
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 8080, host: 9080
config.vm.network "forwarded_port", guest: 8000, host: 9081
config.vm.provider :virtualbox do |vb|
vb.name = "dockerhost"
end
end
Creé estos archivos con la ayuda de http://blog.zenika.com/2014/10/07/Setting-up-a-development-environment-using-Docker-and-Vagrant/ y https://spring.io/ guías / gs / spring-boot-docker /
En IntelliJ agregué una nueva configuración de depuración remota y configuré el puerto en 9081. Si alguien tiene alguna idea de cómo debo configurar este entorno para trabajar en modo de depuración, me complacerá cualquier ayuda.
Si logro conectarme con el depurador a mi aplicación, también quiero tener algunos recursos de repositorio en caliente y recargar la funcionalidad sin necesidad de volver a compilar con maven y reiniciar el acoplador. Por lo tanto, cualquier ayuda en esta área también será excelente, pero no es obligatorio.