重新部署 Spring Boot 应用程序 init.d 服务

重新部署 Spring Boot 应用程序 init.d 服务

我按照本指南将 Spring Boot 应用程序设置为 init.d 服务。 https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-initd-service 我的网站工作正常,但是当我尝试部署一些新的更改时却没有更新。这就是我尝试重新部署的方式:

$ ~/deploy.sh 
#!/bin/bash
rm -rd /var/myapp/target
rm -rd /etc/init.d/myapp
git --git-dir=/var/myapp/.git pull 
sudo systemctl stop myapp
mvn clean package
rm -rd /etc/init.d/myapp
ln -s /var/myapp/target/myapp-0.1.0.jar /etc/init.d/myapp 
systemctl daemon-reload
systemctl start myapp
systemctl status myapp

我检查了我的 jar 是否有最新的代码,但它仍然不会更新。我又玩了一些,我想我删除了一些 init.d 文件,现在它根本不起作用并给出了这个错误。

$ sudo ln -s /var/myapp/target/myapp-0.1.0.jar /etc/init.d/myapp 
ln: failed to create symbolic link ‘/etc/init.d/myapp’: File exists
$ sudo systemctl start  whatthephil
Failed to start myapp.service: Unit not found.

Spring 指南说创建链接会安装应用程序,但它没有正确执行。我在 /var/logs/myapp 中没有收到任何日志。我曾经在那里看到过日志。为什么要寻找 myapp.service?简单地创建一个链接如何安装应用程序?为什么我找不到单位?

答案1

需要删除 nginx 缓存才能更新。 rm -rd /var/cache/nginx/cache *

目前我像这样重新部署我的 Spring Boot 应用程序。总会出问题的,但是如果你检查的话通常不难发现问题/var/log/myApp.log

service myApp stop
rm -rd /etc/init.d/myApp //careful backup home dir first
rm -rd /var/cache/nginx/cache * 
git --git-dir=/var/myApp/.git pull 
mvn clean package -f /var/myApp/pom.xml
ln -s /var/myApp/target/gs-serving-web-content-0.1.0.jar /etc/init.d/myApp 
service myApp start
service myApp status
certbot

相关内容