Heroku: развернуть проект jhipster с `gitlab-ci`, который потерпел крах из-за команды` Procfile` - PullRequest
1 голос
/ 26 марта 2019

Я уже задавал эту проблему по jhipster-generator проблеме с Github.Но все еще не получили решения.

(См. Больше в Пример репозитория на моем выпуске Gitlab и Github # 9426 )

Я думаюэто относится к последним командам в 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
  1. на release: команда cp -R ... не может бытьвыполнено потому что с последней работы gitlab-ci, которые работают нормально и получают зеленый ответ.Но когда я вижу журнал в экземпляре развертывания Heroku, я получаю src/main/resource/config not found.Затем я пытаюсь исследовать больше с добавлением ls * -ltr к release: и обнаружил, что даже каталог src не найден.Там находится только каталог target.

  2. Итак, я попытался удалить строку release: из Procfile, повторить попытку, затем я получил аварийные сообщения с сервера Heroku, на котором запущено приложение.

    • Некоторая часть из журнала
2019-03-26T03:18:10.547189+00:00 app[web.1]: 03:18:10.536 [localhost-startStop-1] ERROR org.springframework.boot.SpringApplication - Application run failed
2019-03-26T03:18:10.547217+00:00 app[web.1]: java.util.ServiceConfigurationError: javax.cache.spi.CachingProvider: Provider org.redisson.jcache.JCachingProvider not a subtype
...
2019-03-26T03:18:10.567009+00:00 app[web.1]: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]

Но если я запусту с командой jhipster heroku, она будет развернута с помощью метода, отличного от командыопределено в .gitlab-ci.yml файле.И может быть успешно запущен.

Итак, из-за документации по развертыванию Heroku , которая, как мне кажется, больше всего связана с обнаруженной мной проблемой, что я должен исправить на Procfileчтобы окончательное развертывание на Heroku могло работать должным образом?

Любая помощь будет признательна и заранее благодарна.

1 Ответ

0 голосов
/ 12 мая 2019

TLDR ;

Я делаю эти вещи, а затем CI-CD с Gitlab -> Heroku может правильно выполнить CI-CD.

вProcfile, удалите строку release:, поскольку файл .gitlab-ci.yml при выполнении состояния deploy-to-production выполняет развертывание файла JAR, не включая целые каталоги проекта, поэтому копировать файлы изкаталоги проекта больше.

Теперь вы можете запускать CI-CD со всеми зелеными на Gitlab конвейере и Deployed succeed на 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}
  • Файл application-heroku.yml, ссылка на переменные окружения ${JDBC_DATABASE_URL}, ${JDBC_DATABASE_USERNAME}, ${JDBC_DATABASE_PASSWORD}, не создан, создается только одна вещьDATABASE_URL содержит postgres://[generated-user]:[generated-secret]@[generated-url]:5432/[generated-dbname]
  • Неправильно для
    • Не запускается с jdbc:
    • Имя переменной среды отличается от указанного выше DATABASE_URL (создано)не равно JDBC_DATABASE_URL, а ${JDBC_DATABASE_USERNAME}, ${JDBC_DATABASE_PASSWORD} не были созданы.Тогда мой обходной путь - создать эти переменные окружения в Heroku settings -> Config vars и правильно отредактировать их значение, например ...
    • key JDBC_DATABASE_URL value jdbc:postgres://[url]:5432/[dbname]
    • key JDBC_DATABASE_USERNAME значение [username]
    • ключ JDBC_DATABASE_PASSWORD значение [password]
    • Или вы можете изменить это значение url: ${JDBC_DATABASE_URL} на url: jdbc:${DATABASE_URL} (никогда не пытайтесь раньше, не уверены в результате).
...