有一个Spring Boot(1.5.4.RELEASE)的微服务,我将一个jar部署到一个AWS EC实例(Linux环境)。 现在,我也在部署一个外部的log4j.properties文件,所以我必须像这样启动微服务:
java -jar myapp.jar -Dlogging.config=/path/to/log4j.properties
我如何将这个Spring Boot Microserviceconfiguration为一个Linux服务,我可以使用这些标志来启动和停止它:
sudo service myapp start | stop | status | restart
非常感谢你。
使用符号链接到您的springboot应用程序,您可以使其作为服务可控…
sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
将一个application.properties
放到你的myapp文件夹中,你可以覆盖你的应用程序中的一个。 这样你就不需要使用命令行开关。 只需将日志配置的路径指定为属性密钥logging.config
值即可。
按照春季启动部署 ,
完全可执行的jar可以像任何其他可执行的二进制文件一样执行,也可以使用
init.d
或systemd
注册
确保使用下面的插件(共享链接中的gradle版本)构建您的应用程序:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin>
如Jörg所示,在init.d中创建一个符号链接:
sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
这是简化的版本:)
更重要的是,您需要定制init,这可以通过conf
文件来完成 – 全部在文档中指定。
除
JARFILE
和APP_NAME
,可以使用.conf文件配置设置。 该文件预计在jar文件旁边,并且具有相同的名称,但后缀为.conf而不是.jar。 例如,名为/var/myapp/myapp.jar的jar将使用名为/var/myapp/myapp.conf的配置文件。
如: myapp.conf
JAVA_OPTS=-Xmx1024M LOG_FOLDER=/custom/log/folder