Почему Heroku пытается запустить newrelic-agent.jar вместо моего приложения? - PullRequest
0 голосов
/ 08 мая 2018

Мое приложение работало, оно работает в стадии подготовки, но после отправки этой сборки в производство Heroku запускает следующую команду:

java -Dserver.port=12366 -javaagent:target/newrelic-agent.jar -jar target/newrelic-agent.jar

Почему Heroku пытается запустить newrelic-agent.jar вместо банки моего приложения?

Мой журнал сборки выглядит так:

-----> Java app detected
-----> Installing JDK 1.8... done
-----> Installing Maven 3.3.9... done
-----> Executing: mvn -DskipTests clean dependency:list install
       [INFO] Scanning for projects...
       [INFO]                                                                         
       [INFO] ------------------------------------------------------------------------
       [INFO] Building projectxserver 1.0.0-SNAPSHOT
       [INFO] ------------------------------------------------------------------------
       [WARNING] The artifact org.hibernate:hibernate-validator:jar:6.0.9.Final has been relocated to org.hibernate.validator:hibernate-validator:jar:6.0.9.Final
       [INFO] 
       [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ projectxserver ---
       [INFO] 
       [INFO] --- maven-dependency-plugin:3.0.2:list (default-cli) @ projectxserver ---
       [INFO] 
       [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ projectxserver ---
       [INFO] Using 'UTF-8' encoding to copy filtered resources.
       [INFO] Copying 1 resource
       [INFO] Copying 11 resources
       [INFO] 
       [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ projectxserver ---
       [INFO] Changes detected - recompiling the module!
       [INFO] Compiling 54 source files to /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/target/classes
       [INFO] /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/src/main/java/tech/projectx/server/models/support/JacksonUtil.java: /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/src/main/java/tech/projectx/server/models/support/JacksonUtil.java uses unchecked or unsafe operations.
       [INFO] /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/src/main/java/tech/projectx/server/models/support/JacksonUtil.java: Recompile with -Xlint:unchecked for details.
       [INFO] 
       [INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ projectxserver ---
       [INFO] Using 'UTF-8' encoding to copy filtered resources.
       [INFO] Copying 1 resource
       [INFO] 
       [INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ projectxserver ---
       [INFO] Changes detected - recompiling the module!
       [INFO] Compiling 1 source file to /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/target/test-classes
       [INFO] 
       [INFO] --- maven-surefire-plugin:2.21.0:test (default-test) @ projectxserver ---
       [INFO] Tests are skipped.
       [INFO] 
       [INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ projectxserver ---
       [INFO] Building jar: /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/target/projectxserver-1.0.0-SNAPSHOT.jar
       [INFO] 
       [INFO] --- spring-boot-maven-plugin:2.0.1.RELEASE:repackage (default) @ projectxserver ---
       [INFO] 
       [INFO] --- maven-dependency-plugin:3.0.2:copy (copy-new-relic-jar) @ projectxserver ---
       [INFO] Configured Artifact: com.newrelic.agent.java:newrelic-agent:?:jar
       [INFO] Copying newrelic-agent-4.0.0.jar to /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/target/newrelic-agent.jar
       [INFO] 
       [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ projectxserver ---
       [INFO] Installing /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/target/projectxserver-1.0.0-SNAPSHOT.jar to /app/tmp/cache/.m2/repository/tech/projectx/projectxserver/1.0.0-SNAPSHOT/projectxserver-1.0.0-SNAPSHOT.jar
       [INFO] Installing /tmp/build_b35db9c210bc86f2ba9870e2cd5d9474/pom.xml to /app/tmp/cache/.m2/repository/tech/projectx/projectxserver/1.0.0-SNAPSHOT/projectxserver-1.0.0-SNAPSHOT.pom
       [INFO] ------------------------------------------------------------------------
       [INFO] BUILD SUCCESS
       [INFO] ------------------------------------------------------------------------
       [INFO] Total time: 17.850 s
       [INFO] Finished at: 2018-05-08T19:10:25+00:00
       [INFO] Final Memory: 61M/410M
       [INFO] ------------------------------------------------------------------------
-----> Discovering process types
       Procfile declares types     -> (none)
       Default types for buildpack -> web
-----> Compressing...
       Done: 190.1M
-----> Launching...
       Released v46
       https://projectxserver-production.herokuapp.com/ deployed to Heroku

После повторного развертывания он начал использовать правильную банку. Heroku подбирает случайный?

1 Ответ

0 голосов
/ 09 мая 2018

Heroku пытается автоматически определить команду для запуска приложения, когда обнаружит, что вы используете Spring Boot. Однако, поскольку новый JAR-файл находится в вашем каталоге target/, он считает, что это ваше приложение.

Вы можете исправить это двумя способами:

  1. Поместите банку с новыми реликвиями в другой каталог (Heroku рекомендует target/dependency или аналогичный).
  2. Создайте Procfile и явным образом сообщите Heroku команду, необходимую для запуска вашего приложения.

Если вы создадите Procfile, он, вероятно, будет выглядеть так:

web: java -Dserver.port=$PORT -javaagent:target/newrelic-agent.jar -jar target/projectxserver-1.0.0-SNAPSHOT.jar

Затем запустите:

git add Procfile
git commit -m "Procfile"
git push heroku master

Вы можете увидеть логику для команды по умолчанию в скрипте bin / release Java buildpack .

...