Gitlab CI用于Maven项目,带有Docker Image



我在Java上有项目,我有测试。现在我有.gitlab-ci.yml

image: maven:latest
stages:
  - build
build:
  stage: build
  script:
    - mvn test-compile compile
  tags:
    - mytag
  only:
    refs:
      - dev

每次,当我在仓库中进行提交时,我正在等待大量时间,何时下载所有下降。在Docker中,我们可以使用音量选项。问题:我可以在本地下载和编译此项目以创建.m2目录,并且可以在.gitlab-ci.yml中使用此目录。如果是,您能帮我如何,因为我没有在互联网示例中找到。

我对/etc/gitlab-runner/config.toml进行了更改:

  [runners.docker]
    tls_verify = false
    image = "maven:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache","/M2/.m2:/root/.m2"]
    shm_size = 0

/M2/是DIR,拥有Gitlab-Runner所有者。但这无济于事,我们如何看到:

Downloaded from central: https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom (2.0 kB at 20 kB/s)
Downloading from atlas: https://dl.bintray.com/qameta/maven/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Downloading from nio: http://clojars.org/repo/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Downloading from central: https://repo.maven.apache.org/maven2/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Progress (1): 2.2/5.9 kB
Progress (1): 5.0/5.9 kB
Progress (1): 5.9 kB    

要采取的步骤:(主机机器 - 机器GitLab-跑步者安装并签名的跑步者(

  1. 在主机上克隆您的存储库
  2. 用Maven
  3. 将其编译
  4. 检查主机上的/root/.m2下是否有缓存的数据文件夹
  5. 修复您的config.toml添加此行

卷= ["/cache","〜/.m2:/reot/.m2"]

  1. 然后添加到.gitlab-ci.yml
cache:
  paths:
    - /root/.m2/

variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2"

.gilatb.yml应该看起来像这样

https://stackoverflow.com/a/40024602/4267015

  • 我构建了一个"基本码头图像"。将pom.xml复制到docker映像,然后运行maven验证该图像。这是Dockerfile:
FROM maven:3.6.1-jdk-8-alpine
COPY pom.xml .
RUN mvn verify clean --fail-never
  • 开放终端,然后转到项目目录并运行Docker Build:

docker build -t xxx/projectname:base。

  • 现在"基本码头图像"具有缓存的数据。

  • ,然后您可以在gitlab-ci.yml中使用"基本docker image":

image: xxx/projectName:base
stages:
  - build
build:
  stage: build
  script:
    - mvn test-compile compile
  tags:
    - mytag
  only:
    refs:
      - dev

最新更新