Tôi đang cố gắng thiết lập môi trường phát triển cho dự án khởi động mùa xuân dựa trên docker và lang thang. Tôi đang sử dụng IntelliJ chạy trên cửa sổ để viết mã và lang thang để có thể chạy dự án trong container docker trên bất kỳ hệ thống. Tôi đang xây dựng dự án với maven. Hiện tại tôi có thể chạy ứng dụng được đóng gói trong jar trong thùng chứa docker chạy trong ubuntu trên virtualbox thông qua lang thang. Tôi không thể tìm ra cách gỡ lỗi ứng dụng của mình trong IntelliJ, tôi bắt đầu áp dụng gỡ lỗi từ xa, đúng không (hoặc ít nhất tôi nghĩ là tôi đang làm đúng) cấu hình chuyển tiếp cổng, nhưng IntelliJ vẫn nói với tôi "Connection reset" và không thể kết nối với trình gỡ rối.gỡ lỗi khởi động mùa xuân trong lang thang và docker
Đây là Dockerfile tôi:
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
Và 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
Tôi tạo ra tập tin này với sự giúp đỡ của http://blog.zenika.com/2014/10/07/Setting-up-a-development-environment-using-Docker-and-Vagrant/ và https://spring.io/guides/gs/spring-boot-docker/
Trong IntelliJ tôi đã thêm cấu hình gỡ lỗi từ xa mới và đặt cổng thành 9081. Nếu có ai đó có ý tưởng về cách cấu hình môi trường này để hoạt động ở chế độ gỡ lỗi, tôi sẽ rất vui khi được trợ giúp.
Nếu tôi quản lý để kết nối với trình gỡ lỗi cho ứng dụng của mình, tôi cũng muốn có một số trao đổi nóng và chức năng tải lại tài nguyên tĩnh mà không cần phải biên dịch lại với maven và khởi động lại docker. Vì vậy, bất kỳ trợ giúp trong lĩnh vực này cũng sẽ là tuyệt vời nhưng nó không phải là phải có.
Tôi đang thực hiện hầu như điều tương tự nhưng tôi đang sử dụng IP sửa trong cấu hình lang thang của mình để tôi có thể nhập IP trong máy chủ từ IntelliJ và hoạt động tốt –
Tôi đã sửa ip trong Vagrant_docker_wrapper như sau: config.vm. mạng "private_network", ip: "192.168.50.4" nhưng nó không thực hiện thủ thuật. IntelliJ vẫn nhận được tôi "Kết nối từ chối: kết nối". Trên cả localhost và 192.168.50.4 – gandalfml