Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用GitLab runner运行spring启动应用程序?_Java_Spring Boot_Gitlab_Gitlab Ci_Gitlab Ci Runner - Fatal编程技术网

Java 如何使用GitLab runner运行spring启动应用程序?

Java 如何使用GitLab runner运行spring启动应用程序?,java,spring-boot,gitlab,gitlab-ci,gitlab-ci-runner,Java,Spring Boot,Gitlab,Gitlab Ci,Gitlab Ci Runner,我有一个spring boot maven应用程序,我在本地运行的身份是: mvn spring-boot:run 我希望能够在GitLab runner中运行此程序,这样当我将代码推送到master时,它会自动将最新的代码复制到那里并运行应用程序 我的GitLab runner现在是在shell模式下配置的,我在.GitLab ci.yml文件中有一个部署任务,它只运行以下任务: mvn spring-boot:run 我遇到的问题是在应用程序启动后,我可以看到它正在运行。。。但它从未显示

我有一个spring boot maven应用程序,我在本地运行的身份是:

mvn spring-boot:run
我希望能够在GitLab runner中运行此程序,这样当我将代码推送到master时,它会自动将最新的代码复制到那里并运行应用程序

我的GitLab runner现在是在shell模式下配置的,我在
.GitLab ci.yml
文件中有一个部署任务,它只运行以下任务:

mvn spring-boot:run
我遇到的问题是在应用程序启动后,我可以看到它正在运行。。。但它从未显示为成功或完成。它只是挂在那里(因为执行该命令时终端仍在运行?)

问题是,我是否应该运行另一组命令,以使我的spring boot应用程序在每次推到master时更新并运行?我应该在我的
gitlab ci.yml
(或其他文件)中放入什么内容。请注意,我没有使用docker或kubernetes。。。只是贝壳

gitlab CI示例:

run-deploy:
  stage: deploy
  script:
    - mvn $MAVEN_CLI_OPTS spring-boot:run 
用这个来尝试nohup也失败了。
-nohup mvn$MAVEN\u CLI\u选择spring引导:运行&

我相信您可以使用
运行
阶段来实现这一点。看起来像

run:
  stage: run
  script:
    - mvn $MAVEN_CLI_OPTS spring-boot:run
你可以看到一个例子

确保还定义了
阶段
,将
运行
作为文档状态

如果
.gitlab ci.yml
中未定义任何
阶段
,则默认情况下允许将
构建
测试
部署
用作作业的阶段。(见附件)


您提供的示例文件是在整个配置文件之上,还是只是其中的一部分?如果是这样,我可以根据您的需要调整我的答案。谢谢

很抱歉这么晚了。我最近也有同样的问题。Gitlab runner阻止子进程以及子树中的任何进程。这使得
disown
命令无法执行,因为您无法访问它。分叉和nohup也不起作用

我能想出的唯一解决办法是使用
at
命令

基本上,我将命令放在脚本中,然后执行:

现在


成功完成跑步者并在后台启动了我的程序。

您能澄清一下这个问题吗?预期的结果是什么?因为当您运行spring boot应用程序时,它会持续运行,您会看到)是的,我想知道如何使其运行,以便在我将代码推入fit repo时,它将自动部署和启动应用程序,而不是GitLab runner被卡住。也许更好的办法是通过spring boot plugin重新打包jar,然后运行jar?但即使这样做,作业仍然不会结束,应用程序将启动并停留在runner中。我做错什么了吗?