我将使用 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) 并不能解决问题。