我打算部署使用GitLab CI服務器簡單的Spring啓動應用程序。我.gitlab-ci.yml
如下:如何使用GitLab亞軍啓動一個服務,並防止它停止?
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)不解決問題。
謝謝!我一上班就會檢查你的解決方案。是否需要以root身份運行runner? – soon
因此,如果通過GitLab CI進行部署是個不好的主意,那麼我不應該爲dpl編寫自定義提供程序嗎? – soon