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 年前檢視次數 1048 次
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 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南