【问题标题】:Gitlab CICD - Run a mvn clean install before building a docker containerGitlab CICD - 在构建 docker 容器之前运行 mvn clean install
【发布时间】:2019-06-16 08:52:21
【问题描述】:

我们正在运行一个 spring-boot 应用程序,它要求您先运行 mvn clean install -Dmaven.test.skip=true,然后才能运行 docker build。是否有同时安装了 maven 和 docker 的镜像?

我尝试使用 maven:3.6.0-jdk-8-slim 图像运行之前的脚本,然后在作业中指定单独的图像。

image: maven:3.6.0-jdk-8-slim

before_script:
      - mvn clean install -Dmaven.test.skip=true

build_archivist_elasticsearch:
  image: docker:latest
  services:
    - docker:dind
  variables:
    DOCKER_DRIVER: overlay
  script:
    - cd archivist
    - docker build -t xxxx/xxxxx:development

需要mvn clean install 来构建和创建工件,然后将docker build -tdocker push 运行到我们的存储库。

【问题讨论】:

    标签: maven spring-boot docker docker-compose centos7


    【解决方案1】:

    我们在使用 spotify docker-maven-plugin 构建 Spring Boot 映像时遇到了类似的问题

    这是我们的最终配置:

    stages:
      - build
    
    variables:
      MVN_OPTS: "-Dmaven.repo.local=/cache/maven.repository"
    
    build:
      image: maven:3.6.0-jdk-8-slim
      stage: build
      script:
        - mvn $MVN_OPTS clean test -Duser.timezone=CET
      tags:
        - docker
    

    使用docker标签,我们选择一个配置为基于docker:latest触发容器的kubernetes gitlab-runner

    【讨论】:

      【解决方案2】:

      解决方案是利用 gitlab-ci.yml 文件中的工件来存储 docker 构建所需的依赖项(即 *.jar 和 *.zip 文件)

      image: docker:latest
      stages:
        - build
        - deploy
      
      build_artifacts:
        image: maven:3.6.0-jdk-8-slim
        stage: build
        script:
            - mvn clean install -Dmaven.test.skip=true
        artifacts:
          paths:
            - archivist/target/*.jar
            - elasticsearch/*.zip
      
      build_archivist_elasticsearch:
        stage: deploy
        image: docker:latest
        services:
          - docker:dind
        variables:
          DOCKER_DRIVER: overlay
        script:
          - cd archivist
          - docker build -t xxxxx/xxxxxx:development .
      

      `

      https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts

      【讨论】:

        猜你喜欢
        • 2020-03-23
        • 1970-01-01
        • 2016-11-11
        • 2021-04-23
        • 2013-11-16
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        • 1970-01-01
        相关资源
        最近更新 更多