У меня есть приложение spring boot
, которое работает локально. Я хотел бы развернуть на heroku
. Я следовал инструкциям здесь, но у меня это не сработало, и я получил "No web processes running"
ошибку.
Следуя предложенным решениям, я попробовал >heroku ps:scale web=1
и получил Couldn't find that process type
ошибку.
Затем я попробовал следующие команды:
heroku buildpacks:clear
heroku buildpacks:add heroku/java
git commit --allow-empty -m "Adjust buildpacks on Heroku"
git push heroku master
Но проблема все еще существует.
Вот мой pom.xml
, если поможет:
<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tests4geeks.tutorials</groupId>
<artifactId>mongo-tutorial</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>mongo-tutorial</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-couchbase</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
вывод build
:
Enumerating objects: 277, done.
Counting objects: 100% (277/277), done.
Delta compression using up to 8 threads
Compressing objects: 100% (259/259), done.
Writing objects: 100% (277/277), 157.87 MiB | 1.29 MiB/s, done.
Total 277 (delta 22), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Java app detected
remote: -----> Installing JDK 1.8... done
remote: -----> Installing Maven 3.6.2... done
remote: -----> Executing Maven
remote: $ mvn -DskipTests clean dependency:list install
remote: [INFO] Scanning for projects...
remote: [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.3.3.RELEASE/spring-boot-starter-parent-2.3.3.RELEASE.pom
remote: [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.3.3.RELEASE/spring-boot-starter-parent-2.3.3.RELEASE.pom (8.6 kB at 13 kB/s)
remote: [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/2.3.3.RELEASE/spring-boot-dependencies-2.3.3.RELEASE.pom
remote: [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/2.3.3.RELEASE/spring-boot-dependencies-2.3.3.RELEASE.pom (122 kB at 1.4 MB/s)
remote: [INFO] Downloading from central: https://repo.maven.apache.org/maven2/com/datastax/oss/java-driver-bom/4.6.1/java-driver-bom-4.6.1.pom
remote: [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/com/datastax/oss/java-driver-bom/4.6.1/java-driver-bom-4.6.1.pom (3.8 kB at 251 kB/s)
remote: [INFO] Installing /tmp/build_84b248db/target/mongo-tutorial-0.0.1-SNAPSHOT.war to /tmp/codon/tmp/cache/.m2/repository/com/tests4geeks/tutorials/mongo-tutorial/0.0.1-SNAPSHOT/mongo-tutorial-0.0.1-SNAPSHOT.war
remote: [INFO] Installing /tmp/build_84b248db/pom.xml to /tmp/codon/tmp/cache/.m2/repository/com/tests4geeks/tutorials/mongo-tutorial/0.0.1-SNAPSHOT/mongo-tutorial-0.0.1-SNAPSHOT.pom
remote: [INFO] ------------------------------------------------------------------------
remote: [INFO] BUILD SUCCESS
remote: [INFO] ------------------------------------------------------------------------
remote: [INFO] Total time: 26.956 s
remote: [INFO] Finished at: 2020-12-26T20:53:46Z
remote: [INFO] ------------------------------------------------------------------------
remote: -----> Discovering process types
remote: Procfile declares types -> (none)
remote:
remote: -----> Compressing...
remote: Done: 211.1M
remote: -----> Launching...
remote: Released v3
remote: https://hidden-coast-44319.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/hidden-coast-44319.git
* [new branch] master -> master
@ Крис, я не использую Docker. Ты прав. Что касается Procfile, то у меня его нет и, похоже, он не нужен. В ссылке, которой я поделился (devcenter.heroku.com/articles/…), приложение правильно развернуто без необходимости использования Procfile.
Я не понимаю, как сопоставляются типы процессов, если у вас нет Procfile
. Пожалуйста, отредактируйте свой вопрос, чтобы показать нам полный результат сборки, когда вы нажимаете.
@Chris Я также пытался использовать Procfile, содержащий «web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/*.jar», но это не помогло, и я получил еще одну ошибку: Ошибка: невозможно получить доступ к jarfile target/ *.банка
Ладно, это другая проблема. Пожалуйста, отредактируйте свой вопрос, чтобы показать результат сборки, как я задавал ранее, или задайте новый вопрос о своей проблеме с вашим Procfile
.
@Chris Я обновил вопрос, указав результат процесса сборки. Однако это не весь вывод, так как это было более 60000 строк, что было больше разрешенного количества для вопроса на Stackoverflow. Я думаю, что он включает в себя соответствующую часть. Тем временем, после процесса сборки я вижу военный файл в моей целевой папке.
У вас есть Procfile
? Даже пустой? В выходных данных сборки указано Procfile declares types -> (none)
, но я не вижу строку Default types for buildpack -> web
в документации, на которую вы ссылаетесь. Попробуйте heroku buildpacks:clear
, а затем (без явного указания) развернуть снова.
@ Крис Нет, у меня вообще нет Procfile. Я попробовал heroku buildpacks:clear
, а потом git push heroku master
. Вы это имели в виду? К сожалению, это тоже не помогло.
@Chris В документации есть строчка spring init --dependencies=web demo
. Поскольку я не создаю новый проект, я пропустил его. Должен ли я использовать --dependencies=web
где-то еще? Если да, то не могли бы вы рассказать мне, как?
Я думаю, что это другой вид web
. Вероятно, он добавляет некоторую конфигурацию или зависимости для создания веб-приложений. Поскольку вы смогли получить другую ошибку, добавив Procfile
, я предлагаю вам сделать это и продолжить путь, чтобы заставить это работать.
Я мог бы решить эту проблему, добавив Procfile со следующим текстом:
web: java -jar target/mongo-tutorial-1.0.jar
И удаление следующих строк из файла pom
:
<packaging>war</packaging>
Это не имеет ничего общего с вашими пакетами сборки, и я не думаю, что ваш
pom.xml
имеет значение (хотя я не Java-разработчик). У вас естьProcfile
? Что он содержит? Я предполагаю, что, поскольку вы пытаетесь использоватьheroku/java
, вы не используете Docker?