Cấu hình sau là bắt buộc trong tệp build.gradle trong các dự án Spring Boot.
xây dựng. nâng cấp
jar {
baseName = 'your-app'
version = version
}
springBoot {
buildInfo()
executable = true
mainClass = "com.shunya.App"
}
thực thi = đúng
Điều này là bắt buộc để tạo jar hoàn toàn có thể thực hiện được trên hệ thống unix (Centos và Ubuntu)
Tạo một tập tin .conf
Nếu bạn muốn định cấu hình các thuộc tính JVM tùy chỉnh hoặc các đối số chạy ứng dụng Spring Boot, thì bạn có thể tạo một tệp .conf có cùng tên với tên ứng dụng Spring Boot và đặt nó song song với tệp jar.
Xem xét rằng-app.jar là tên của ứng dụng Spring Boot của bạn, sau đó bạn có thể tạo tệp sau đây.
JAVA_OPTS="-Xms64m -Xmx64m"
RUN_ARGS=--spring.profiles.active=prod
LOG_FOLDER=/custom/log/folder
Cấu hình này sẽ đặt ram 64 MB cho ứng dụng Spring Boot và kích hoạt hồ sơ prod.
Tạo người dùng mới trong linux
Để tăng cường bảo mật, chúng tôi phải tạo một người dùng cụ thể để chạy ứng dụng Spring Boot dưới dạng dịch vụ.
Tạo người dùng mới
sudo useradd -s /sbin/nologin springboot
Trên Ubuntu / Debian, sửa đổi lệnh trên như sau:
sudo useradd -s /usr/sbin/nologin springboot
Đặt mật khẩu
sudo passwd springboot
Làm cho chủ sở hữu springboot của tập tin thực thi
chown springboot:springboot your-app.jar
Ngăn chặn sửa đổi tệp jar
chmod 500 your-app.jar
Điều này sẽ cấu hình các quyền của jar để nó không thể được viết và chỉ có thể được đọc hoặc thực thi bởi springboot của chủ sở hữu.
Bạn có thể tùy ý làm cho tệp jar của mình là bất biến bằng cách sử dụng lệnh thay đổi thuộc tính (chattr).
sudo chattr +i your-app.jar
Các quyền thích hợp cũng nên được đặt cho tệp .conf tương ứng. .conf chỉ yêu cầu quyền truy cập đọc (Octal 400) thay vì truy cập đọc + thực thi (Octal 500)
chmod 400 your-app.conf
Tạo dịch vụ Systemd
/etc/systemd/system/your-app.service
[Unit]
Description=Your app description
After=syslog.target
[Service]
User=springboot
ExecStart=/var/myapp/your-app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Tự động khởi động lại quá trình nếu nó bị hệ điều hành giết
Nối hai thuộc tính dưới đây (Khởi động lại và Khởi động lại) để tự động khởi động lại quá trình khi thất bại.
/etc/systemd/system/your-app.service
[Service]
User=springboot
ExecStart=/var/myapp/your-app.jar
SuccessExitStatus=143
Restart=always
RestartSec=30
Thay đổi sẽ khiến ứng dụng Spring Boot khởi động lại trong trường hợp thất bại với độ trễ 30 giây. Nếu bạn dừng dịch vụ bằng lệnh systemctl thì khởi động lại sẽ không xảy ra.
Lịch trình dịch vụ khi khởi động hệ thống
Để gắn cờ ứng dụng khởi động tự động khi khởi động hệ thống, hãy sử dụng lệnh sau:
Bật ứng dụng Spring Boot khi khởi động hệ thống
sudo systemctl enable your-app.service
Bắt đầu dừng dịch vụ
systemctl có thể được sử dụng trong Ubuntu 16.04 LTS và 18.04 LTS để bắt đầu và dừng quá trình.
Bắt đầu quá trình
sudo systemctl start your-app
Dừng quá trình
sudo systemctl stop your-app
Người giới thiệu
https://docs.spring.io/spring-boot/docs/civerse/reference/html/deployment-install.html