GitLab CI/CD maven项目加速
GitLab CI/CD 在构建 maven项目的时候发现很慢,经过查询大量资料和尝试,终于发现了镜像加速的方法,记录一下
参考资料:
https://oomake.com/question/10042383
https://gitlab.com/gitlab-org/gitlab-foss/-/issues/15167
image: docker:latest
variables:
IMAGE_NAME_HZ: "${REGISTRY_HZ}/${CI_PROJECT_NAMESPACE}-${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}"
IMAGE_NAME_ZJK: "${REGISTRY_ZJK}/${CI_PROJECT_NAMESPACE}-${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}"
BIN_NAME: "fdd"
cache:
paths:
- .m2/
stages:
- package
- build
package:
image: maven:3.6-jdk-8-alpine
tags:
- public-runner001
stage: package
script:
- echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>/cache/.m2</localRepository>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
</settings>' > $HOME/.m2/settings.xml
- mvn clean install -Dmaven.test.skip=true
artifacts:
paths:
- target/*.jar # 将maven构建成功的jar包作为构建产出导出,可在下一个stage的任务中使用
build:
stage: build
tags:
- public-runner001
image: docker:stable
services:
- docker:dind
only:
- master
- tags
- merge_requests
dependencies:
- package
script:
# 杭州
- docker login -u ${CI_USER} -p ${CI_PASSWD} ${REGISTRY_HZ}
- docker build . -t ${IMAGE_NAME_HZ}
- docker push ${IMAGE_NAME_HZ}
# 张家口
- docker login -u ${XD_CI_USER} -p ${CI_PASSWD} ${REGISTRY_ZJK}
- docker build . -t ${IMAGE_NAME_ZJK}
- docker push ${IMAGE_NAME_ZJK}