Hướng dẫn deploy Java Project, Maven Project với Jenkins.
Trong bài trước, mình thực hiện build 1 maven project với source lấy từ github thành 1 file .jar
sau đó chạy file jar đó bằng tay.
Thực tế thì khi deploy ứng dụng, sau khi build được file .jar (hoặc là file .war
, .ear
) thì người ta sẽ chạy file .jar
đó giống như 1 service để chạy ngầm và quản lý. Hoặc với những file .war
thì người ta sẽ cấu hình để sau khi build, upload file đó lên tomcat để chạy. Còn gần nhất là đang thịnh hành sử dụng docker để deploy thì người ta sẽ tạo 1 container, copy file .jar
, .war
vào container đó và chạy.
Trong bài này mình sẽ hướng dẫn chạy file .jar
tự động sau khi build giống như 1 service trên Ubuntu.
Hướng dẫn deploy Java Project, Maven Project với Jenkins.
Đầu tiên các bạn cần tạo 1 service chạy file .jar
.
Ví dụ mình tạo 1 service tên là spring-boot-hello
, service này thực hiện chạy file .jar ở vị trí
/home/stackjava/workspace/spring-boot-hello.jar
(Xem lại: Chạy file jar giống như một service trên Ubuntu)
Bài này mình sẽ sử dụng lại plan build trong ví dụ trước: Hướng dẫn build java project, maven project trên Jenkins
Trong phần Post Steps
, chúng ta thêm các câu lệnh để chạy service (Mình dùng Ubuntu nên sẽ sử dụng Execute Shell
)
Mình sẽ sử dụng các câu lệnh để copy file .jar
sau khi build vào folder /home/stackjava/workspace/spring-boot-hello.jar
Restart và kiểm tra lại status của service spring-boot-hello
echo '------- start copy jar to /home/stackjava/workspace ------------' cp /var/lib/jenkins/jobs/spring-boot-hello/workspace/target/spring-boot-hello-0.0.1-SNAPSHOT.jar /home/stackjava/workspace/spring-boot-hello.jar echo '------- finish copy jar -------------------------------------' echo '------- restart spring-boot-hello service------------------' sudo systemctl restart spring-boot-hello echo '------- finish restart spring-boot-hello service' sudo systemctl status spring-boot-hello
Save lại và run lại plan build.
Lưu ý: Nếu bạn bị lỗi no tty present and no askpass program specified
khi run plan build thì xem cách sửa tại đây.
Kết quả sau khi chạy plan build:
Kiểm tra log của service spring-boot-hello
:
sudo journalctl -f -n 100 -u spring-boot-hello
Mở brower và truy cập địa chỉ: http://localhost:8081
Trong các bài tiếp theo mình sẽ hướng dẫn deploy các project như node.js, typescript. Sử dụng docker để deploy.
Okay, Done!
References: https://www.jenkins.io/doc/