目标
把Spring boot的jar部署到CentOS7上面,并且随CentOS7随机启动。
Spring boot Jar
bootJar {
launchScript()
}
然后,直接使用如下命令,进行构建:
# 清理已经构建可执行jar
./gradlew clean
# 重新构建可执行jar
./gradlew build
# 验证spring boot jar是否有效
./build/libs/xxx-1.0-SNAPSHOT.jar
创建用户
sudo useradd --system --home /var/myapp --shell /sbin/nologin --comment "myapp user" --user-group myapp
授权文件夹
chown -R nginx /var/myapp
chgrp -R nginx /var/myapp
systemd
myapp.service
/etc/systemd/system/myapp.service
[Unit]
Description=myapp
After=syslog.target
[Service]
User=myapp
Group=myapp
ExecStart=/var/myapp/myapp.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
上面就是systemd的配置文件。其中ExecStart表示执行的spring boot的jar的路径。systemctl的日志需要使用journalctl来查看,简单使用如下:
journalctl -u myapp.service -f
运行
上传Spring boot的jar到/var/myapp/
目录,使用如下命令:
# 修改jar文件执行权限
chmod 755 /var/myapp/myapp.jar
# 设置myapp服务为随机启动
systemctl enable myapp.service
# 启动服务
systemctl start myapp.service
# 查看服务
systemctl status myapp.service
firewall
# 把myapp服务暴露在外面,主要就是开放myapp使用的端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重启firewall
firewall-cmd --reload
验证
可以直接通过外部chrome浏览器访问该服务是否有效。