Maven Heroku:使用'gitlab ci'部署jhipster项目由于'Procfile'命令而崩溃
我以前曾在jhipster generator的Github问题上问过这个问题。 但仍然没有找到解决方案 (详见和) 我认为这与我从生成器获得的Maven Heroku:使用'gitlab ci'部署jhipster项目由于'Procfile'命令而崩溃,maven,spring-boot,heroku,jhipster,gitlab-ci,Maven,Spring Boot,Heroku,Jhipster,Gitlab Ci,我以前曾在jhipster generator的Github问题上问过这个问题。 但仍然没有找到解决方案 (详见和) 我认为这与我从生成器获得的Procfile中的最终命令有关,它的定义如下: web: java $JAVA_OPTS -Xmx256m -jar target/*.war --spring.profiles.active=prod,heroku,no-liquibase --server.port=$PORT release: cp -R src/main/resources/
Procfile
中的最终命令有关,它的定义如下:
web: java $JAVA_OPTS -Xmx256m -jar target/*.war --spring.profiles.active=prod,heroku,no-liquibase --server.port=$PORT
release: cp -R src/main/resources/config config && ./mvnw liquibase:update -Pheroku
release:
上,无法执行命令cp-R…
,因为从gitlab ci的上一个作业开始,它工作正常并得到绿色响应。但是当我看到登录Heroku部署实例时,我得到了src/main/resource/config not found
。然后,我尝试通过将ls*-ltr
添加到release:
进行更多调查,发现甚至src
目录也找不到。只有target
目录在那里Procfile
中删除release:
行,然后我从运行该应用程序的Heroku服务器收到崩溃消息
- 从日志中提取部分
jhipster heroku
运行,它将使用与.gitlab ci.yml
文件中定义的命令不同的方法进行部署。并且可以成功运行
因此,由于我认为这与我现在发现的问题最相关的问题,我应该在Procfile
上解决什么问题,以便在Heroku上获得最终部署,从而使其能够正常工作
任何帮助,我们都将提前感谢您。
我做了这些事情,然后使用Gitlab
->Heroku
的CI-CD可以正确地制作CI-CD
在Procfile
中,删除release:
行,因为执行deploy to production
状态时,.gitlab ci.yml
文件所做的是部署JAR
文件,而不包括整个项目目录,因此,从项目目录复制文件不再重要
现在,您可以在Gitlab
pipeline上以全绿色运行CI-CD,在Heroku
但是有一些问题会阻止你的应用程序正常运行。这是我发现的
# ===================================================================
# Spring Boot configuration for the "heroku" profile.
#
# This configuration overrides the application.yml file.
# ===================================================================
# ===================================================================
# Standard Spring Boot properties.
# Full reference is available at:
# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
# ===================================================================
eureka:
instance:
hostname: jhip-cicd-bug.herokuapp.com
non-secure-port: 80
prefer-ip-address: false
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: ${JDBC_DATABASE_URL}
username: ${JDBC_DATABASE_USERNAME}
password: ${JDBC_DATABASE_PASSWORD}
hikari:
maximumPoolSize: 8
data:
jest:
uri: ${BONSAI_URL}
文件,对环境变量的引用应用程序heroku.yml
,${JDBC\u DATABASE\u URL}
,${JDBC\u DATABASE\u USERNAME}
,并没有创建,唯一要创建的是${JDBC\u DATABASE\u PASSWORD}
包含
postgres://[生成的用户]:[生成的秘密]@[生成的url]:5432/[生成的dbname]
- 这是错误的
- 不是以
jdbc:
- 环境变量名称不同于上面定义的
(已创建)不等于DATABASE\u URL
,以及JDBC\u DATABASE\u URL
,${JDBC\u DATABASE\u USERNAME}
未创建。然后我的解决方法是在${JDBC\u DATABASE\u PASSWORD}
设置->配置变量上创建这些环境变量,并正确编辑它们的值,如Heroku
- key
valueJDBC\u DATABASE\u URL
JDBC:postgres://[URL]:5432/[dbname]
- 键
valueJDBC\u数据库\u用户名
[USERNAME]
- 键
valueJDBC\u数据库\u密码
[PASSWORD]
- 或者您可以将此
更改为url:${JDBC\u DATABASE\u url}
(之前不要尝试,对结果没有信心)url:JDBC:${DATABASE\u url}
- 不是以
-
我做了这些事情,然后使用
Gitlab
->Heroku
的CI-CD可以正确地制作CI-CD
在Procfile
中,删除release:
行,因为执行deploy to production
状态时,.gitlab ci.yml
文件所做的是部署JAR
文件,而不包括整个项目目录,因此,从项目目录复制文件不再重要
现在,您可以在Gitlab
pipeline上以全绿色运行CI-CD,在Heroku
但是有一些问题会阻止你的应用程序正常运行
# ===================================================================
# Spring Boot configuration for the "heroku" profile.
#
# This configuration overrides the application.yml file.
# ===================================================================
# ===================================================================
# Standard Spring Boot properties.
# Full reference is available at:
# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
# ===================================================================
eureka:
instance:
hostname: jhip-cicd-bug.herokuapp.com
non-secure-port: 80
prefer-ip-address: false
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: ${JDBC_DATABASE_URL}
username: ${JDBC_DATABASE_USERNAME}
password: ${JDBC_DATABASE_PASSWORD}
hikari:
maximumPoolSize: 8
data:
jest:
uri: ${BONSAI_URL}
文件,对环境变量的引用应用程序heroku.yml
,${JDBC\u DATABASE\u URL}
,${JDBC\u DATABASE\u USERNAME}
,并没有创建,唯一要创建的是${JDBC\u DATABASE\u PASSWORD}
包含
postgres://[生成的用户]:[生成的秘密]@[生成的url]:5432/[生成的dbname]
- 这是错误的
- 不是以
jdbc:
- 环境变量名称不同于上面定义的
(已创建)不等于DATABASE\u URL
,以及JDBC\u DATABASE\u URL
,${JDBC\u DATABASE\u USERNAME}
未创建。然后我的解决方法是在${JDBC\u DATABASE\u PASSWORD}
设置->配置变量上创建这些环境变量,并正确编辑它们的值,如Heroku
- key
valueJDBC\u DATABASE\u URL
JDBC:postgres://[URL]:5432/[dbname]
- 键
valueJDBC\u数据库\u用户名
[USERNAME]
- 键
valueJDBC\u数据库\u密码
[PASSWORD]
- 或者您可以将此
更改为url:${JDBC\u DATABASE\u url}
(之前不要尝试,对结果没有信心)url:JDBC:${DATABASE\u url}
- 不是以
heroku-war:deploy-build/libs/*war
)我找到了解决方案,稍后将发布。@JeroenKransen,但问题是模板代码现在无法运行,需要在application.yml
配置文件和环境变量上进行更改。这可能对其他人有用。我得到了git push heroku