debug spring boot in vagrant and docker -


i'm trying setup development environment spring-boot project based on docker , vagrant. i'm using intellij running on windows write code , vagrant able run project in docker containers on system. i'm building project maven. i'm able run application packaged in jar in docker container running in ubuntu on virtualbox via vagrant. cannot figure out how debug application in intellij, start application remote debugging on, correctly (or @ least think i'm doing right) configure port forwarding, intellij still tells me "connection reset" , cannot connect debugger.

here dockerfile:

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") |config|   config.vm.define "app" |a|     a.vm.provider "docker" |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 

and vagrant_docker_wrapper:

vagrant.configure("2") |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 |vb|       vb.name = "dockerhost"   end  end 

i created files of http://blog.zenika.com/2014/10/07/setting-up-a-development-environment-using-docker-and-vagrant/ , https://spring.io/guides/gs/spring-boot-docker/

in intellij added new remote debug configuration , set port 9081. if has ideas how should configure environment work in debug mode glad help.

if manage connect debugger app, want have hot swap , static resources reload functionallity without need recompile maven , restart docker. in area great isn't must have.

ok, found error, in vagrant file has port 8080 exposed docker container. has 2 options -xdebug -xrunjdwp defined single option in docker entrypoint. correct docker file looks this:

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"] 

and correct vagrant file:

env['vagrant_default_provider'] = 'docker'  vagrant.configure("2") |config|   config.vm.define "app" |a|     a.vm.provider "docker" |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 

also, when i'm connected via debugger server, can hot swap java classes without problems (i didn't check static resources yet).


Comments

Popular posts from this blog

java - Static nested class instance -

c# - Bluetooth LE CanUpdate Characteristic property -

JavaScript - Replace variable from string in all occurrences -