如何将Java应用程序用作Docker容器和.war文件?

时间:2018-12-20 13:29:25

标签: build gitlab devops

当前,我们公司正在为B2B客户创建单独的软件。

某些应用程序可以用于多个客户。

通常,我们可以在云中托管应用程序,并使用Docker部署所有内容。 为此,运行GitLab管道并进行部署等就可以了。

现在,我们有了一些依靠外部安装的客户。
由于其中一些仍使用Windows Server(2008 tho),因此我无法在此处安装适当的Docker环境,因此我们需要安装Apache Tomcat并在tomcat中运行应用程序。

问题:如何处理?我需要一个管道来创建docker映像和war文件。 只需创建两个完全独立的管道? 在一个管道中处理所有事情?

我们当前用于.war的gitlab-ci.yml文件

image: maven:latest

variables:
  MAVEN_CLI_OPTS: "-s settings.xml -q -B"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"

cache:
  paths:
    - .m2/repository/
    - target/

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - mvn $MAVEN_CLI_OPTS compile

test:
  stage: test
  script:
    - mvn $MAVEN_CLI_OPTS test

install:
  stage: deploy
  script:
    - mvn $MAVEN_CLI_OPTS install
  artifacts:
    name: "datahub-$CI_COMMIT_REF_SLUG"
    paths:
      - target/*.war

1 个答案:

答案 0 :(得分:1)

最好使用单独的传递管道:您正在处理两个非常安装的过程,并且需要确保给定客户端正在运行哪个过程。

拥有两个单独的GitLab管道可以使所述客户选择合适的管道。