Я собираюсь развернуть простое приложение Spring Boot с помощью сервера GitLab CI. Мой .gitlab-ci.yml
выглядит следующим образом:
stages:
- build_and_test
- deploy
web_server_build_and_test:
stage: build_and_test
script:
- mvn clean package
web_server_deploy:
stage: deploy
script:
- mvn clean package -Pprod
- service gitlab-runner-test stop
- cp target/*.war /var/gitlab-runner-test/gitlab-runner-test.war
- chmod +x /var/gitlab-runner-test/gitlab-runner-test.war
- service gitlab-runner-test start
И этап deploy
дает следующий результат:
$ service gitlab-runner-test stop
Stopped [13247]
$ cp target/*.war /var/gitlab-runner-test/gitlab-runner-test.war
$ chmod +x /var/gitlab-runner-test/gitlab-runner-test.war
$ service gitlab-runner-test start
Started [21177]
Однако я не могу загрузить приложение, так как служба была остановлена после того, как бегун завершил этап:
$ service gitlab-runner-test status
Not running (process 21177 not found)
Мои служебные скрипты делегируют реальную работу собранному пакету war
:
#!/usr/bin/env bash
export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre/bin/java
export MODE=service
export APP_NAME=gitlab-runner-test
export PID_FOLDER=/var/run/gitlab-runner-test
/var/gitlab-runner-test/gitlab-runner-test.war $*
Более того, когда я запускаю сервис вручную (service gitlab-runner-test start
), он продолжает работать даже после закрытия пользовательского сеанса.
Я не уверен, в чем корень проблемы - сценарий запуска Spring Boot, конфигурация GitLab, мои служебные сценарии или что-то еще?
Я запускаю Ubuntu 14.04 с многопользовательской версией GitLab CI 0.5.0 (c38415a).
UPD:
Обновление раннера до версии 1.0.1 (cffb5c7) проблему не решает.
nohup
, чтобы запустить процесс, не завершая его при выходе из родительского объекта. Итак,- nohup service gitlab-runner-test start
илиnohup /var/gitlab-runner-test/gitlab-runner-test.war $*
. - person Chloe   schedule 21.12.2018