Gitlab CICD - Запустите mvn clean install перед сборкой док-контейнера - PullRequest
0 голосов
/ 22 января 2019

Мы запускаем приложение с весенней загрузкой, которое требует от вас запуска mvn clean install -Dmaven.test.skip=true, прежде чем вы сможете запустить docker build.Существуют ли образы с установленным maven и docker?

Я попытался запустить сценарий before с изображением 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 -t и docker push для нашего репо.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

У нас была похожая проблема при создании образа весенней загрузки с использованием spotify docker-maven-plugin

Вот наша окончательная конфигурация:

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 мы выбираем kubernetes gitlab-runner, настроенный для запуска контейнеров на основе docker:latest

0 голосов
/ 23 января 2019

Решение заключается в использовании артефактов в файле 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

...