Deployment Heroku
Cấu hình dự án
Quy định file jar
Mở file pom.xml
Thêm dòng <finalName>bookstore</finalName>
để chỉ định tên package. Khi đó, nếu ta chạy lệnh mvn clean install
thì ta sẽ nhận được file bookstore.jar
trong thư mục target
.
Tạo profile
Tạo profile heroku với file application-heroku.properties
với nội dung:
spring.jpa.hibernate.ddl-auto=create
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url: ${JDBC_DATABASE_URL:}
spring.datasource.maxActive=10
spring.datasource.maxIdle=5
spring.datasource.minIdle=2
spring.datasource.initialSize=5
spring.datasource.removeAbandoned=true
server.port=${PORT:5000}
jwt-key=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJCb29rU3RvcmUifQ.xW8fVhGB66Ie3vL8hZoAOuntDXokWaxv3Nkl5V3V_ao
Tạo file Procfile
với nội dung
heroku ps:scale web=1
web: java -Dspring.profiles.active=heroku -jar target/bookstore.jar
Mục đích chính của file này là khai báo ứng dụng sẽ chạy với file target/bookstore.jar
và dùng profile heroku
đã tạo mới ở trên.
Cấu hình dữ liệu
Ta sẽ sử dụng hệ database postgress
trên heroku với một số quy định về tên bảng để tránh trùng từ khóa. Cụ thể, với model User
ta cần đổi tên bảng về users
. Để làm điều đó, ta thêm
@Table(name = "users")
Ta cũng cần add dependency là thư viện postgresql vào file pom.xml
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
Heroku
Truy cập trang https://heroku.com đăng ký một tài khoản miễn phí và có được username và password.
Tải và cài đặt Heroku CLI tại https://toolbelt.heroku.com
Trên command line, ta chạy lệnh heroku login
, đăng nhập tài khoản đã đăng ký
Tạo dự án heroku
Mở command line, trên thư mục dự án, ta chạy lệnh heroku create <tên app>
Ở đây,
Tiếp theo, ta cần cài đặt posgres database trên server bằng lệnh heroku addons:create heroku-postgresql
Để deploy trang web lên, ta chạy lệnh git push heroku master
. (Phân biệt với git push origin master
hay git push
)
Quá trình này diễn ra khá lâu để hoàn tất (nếu không có lỗi). Sau đó, ta có thể mở trình duyệt bằng cách gõ đường dẫn ở trên hoặc dùng lệnh heroku open
để xem kết quả.
Xử lý sự cố
Việc deploy lên heroku có thể gặp nhiều một số tình huống lỗi, kể cả chạy ok ở local nhưng sẽ không chạy hoặc chạy sai trên heroku. Vì vậy, ta phải check vấn đề là gì và tìm cách xử lý như sau:
- Xem log
Xem log là cách dễ nhất để biết vấn đề đang bị là gì, ta có thể xem log bằng lệnh heroku logs --tail
. Lệnh này sẽ lấy log liên tục từ server và hiển thị ra màn hình, để kết thúc, ta bấm Ctrl + C.
- Check database
Ta có thể dùng lệnh để xem cấu trúc database, thực hiện vài lệnh để xem, sử database bằng cách chạy lệnh heroku pg:psql
Để kết thúc, gõ \q
- Dùng trang chủ heroku
Đăng nhập trên trang chủ https://dashboard.heroku.com/apps để xem tình trạng app và có thể điều chỉnh nếu cần thiết.