GitLab CI サーバーを使用して単純な Spring Boot アプリケーションをデプロイします。私の.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 構成、サービス スクリプト、またはその他のものですか?
GitLab CI マルチランナー バージョン 0.5.0 (c38415a) で Ubuntu 14.04 を実行しています。
更新:
ランナーをバージョン 1.0.1 (cffb5c7) にアップグレードしても問題は解決しません。