Procfile best practices for Spring Boot application?

0

We are switching from Tomcat to Spring boot based deployment. So far everything seems to be working perfectly - with one minor issue: if we tell EBS to restart an Application Server it does restart the Process, but it does come back as if it has failed.

We are reading some env variables to properly configure the startup. That is why we have a script starting the application:

Procfile

web: chmod +x lem-webapp.sh; ./startup-webapp.sh

startup-webapp.sh

#!/bin/sh
exec /etc/alternatives/jre/bin/java $JAVA_OPTS -cp 'lib/*' --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED our.nice.Application
已提问 2 年前1018 查看次数
1 回答
0

Hello there,

Here are some good practices for defining a Procfile for your application:

  • Put it in the root directory of your application source.

  • Use a Procfile for long-running application processes that shouldn't exit. Elastic Beanstalk monitors these processes and restarts any process that terminates.

  • All paths in the Procfile are relative to the root of the source bundle.

Example Procfile:

web: java -jar server.jar -Xms256m
cache: java -jar mycache.jar
web_foo: java -jar other.jar

In your case, you mention but it does come back as if it has failed, to better understand the issue, I would recommend you to check the logs on the instances. Elastic Beanstalk names the log files after the process and stores them in /var/log. For example, the web process in the preceding example generates logs named web-1.log and web-1.error.log for stdout and stderr, respectively.

Feel free to open a support case to AWS Premium Support if you want us to take a closer look into your logs file.

支持工程师
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则