java - 如何使用 GitLab runner 运行 spring-boot 应用程序?

标签 java spring-boot gitlab gitlab-ci gitlab-ci-runner

我有一个 spring-boot maven 应用程序,我一直在本地运行:

mvn spring-boot:run

我希望能够在 GitLab 运行程序中运行它,以便当我将代码推送到 master 时,它会自动复制最新的代码并运行应用程序。

我的 GitLab 运行程序现在已配置为 shell 模式,并且我在 .gitlab-ci.yml 文件内有一个运行该任务的部署任务:

mvn spring-boot:run

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

问题是,是否应该运行一组备用命令来让我的 spring-boot 应用程序在每次推送到 master 时更新和运行?我应该将什么放入我的 gitlab-ci.yml (或其他文件)中。请注意,我没有使用 docker 或 kubernetes...只是 shell。

示例 gitlab CI:

run-deploy:
  stage: deploy
  script:
    - mvn $MAVEN_CLI_OPTS spring-boot:run 

尝试 nohup 也失败。 - nohup mvn $MAVEN_CLI_OPTS spring-boot:run &

最佳答案

我相信您可以使用 run 阶段来实现此目的。它看起来像

run:
  stage: run
  script:
    - mvn $MAVEN_CLI_OPTS spring-boot:run

您可以查看 here 的示例.

确保您还定义了 stages 以将 run 包含为文档状态

If no stages are defined in .gitlab-ci.yml, then the build, test and deploy are allowed to be used as job’s stage by default. (see stages)

您在上面提供的示例文件是整个配置文件还是只是其中的一个片段?如果是这样,我可以调整我的答案以满足您的需求。谢谢!

关于java - 如何使用 GitLab runner 运行 spring-boot 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316911/

相关文章:

raspberry-pi - 覆盆子pi上kubernetes上的gitlab-runner-找不到容器 “helper”

http - 通过 HTTP 获取私有(private) GitLab 仓库

java - NoSuchMethodError : com. google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V

java - Java写.properties文件时程序在 '\'前加 ':'

java - Rest Controller 上的 Spring Boot Thymeleaf ViewResolver

java - SpringBootApplication无法识别属性配置

Git:如何在现有仓库中设置远程

java - 从 Tomcat 服务器中的 netbeans 项目运行 JSP

java - 检查两个数组的元素顺序是否相同

spring-security - 用户信息放在session的什么地方