最近我正在研究使用Gitlab CI。作为一个演示,我决定配置一个代码质量检查作业。在注册赛跑者之后,我像这样配置.gitlab-ci.yml
文件:
code_quality:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
reports:
codequality: gl-code-quality-report.json
这是官方网页:Link
这是来自gitlab官方的模板。当我运行管路时,它就像卡住了一样。然后我知道,码头工人正在拉很多codeclimate
图像,包括两个超过1GB的图像。最后,提取这些图像大约需要15分钟。
这对我来说花费了太多时间,所以我想我可以建立一个本地注册表来加快提速速度(因为它在docker tech中使用了docker,因此每次我运行pipline时都会有一个containerA并在containerA中运行一个containerB。因此,对于containerA,永远不会有本地映像。因此,containerA总是从注册表中提取映像。)在服务器上部署本地注册表并将所有10GB以上的映像推送到其中之后。我这样更改了.gitlab-ci.yml
:
code_quality:
image: docker:latest
variables:
DOCKER_DRIVER: overlay2
before_script:
- which docker
allow_failure: true
services:
- name: docker:stable-dind
command: ["--insecure-registry=192.168.0.1:5000"]
script:
- which docker
- docker pull 192.168.0.1:5000/codeclimate:0.72.0
- docker pull 192.168.0.1:5000/codeclimate-structure:latest
- docker pull 192.168.0.1:5000/codeclimate-duplication:latest
- docker pull 192.168.0.1:5000/codeclimate-coffeelint:latest
- docker pull 192.168.0.1:5000/codeclimate-csslint:latest
- docker pull 192.168.0.1:5000/codeclimate-eslint:latest
- docker pull 192.168.0.1:5000/codeclimate-rubocop:latest
- docker pull 192.168.0.1:5000/codeclimate-fixme:latest
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--env CODECLIMATE_VERSION=0.72.0
--env TIMEOUT_SECONDS=90
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
192.168.0.1:5000/codequality:latest /code
artifacts:
reports:
codequality: gl-code-quality-report.json
(192.168.0.1是本地主机)
然后我又跑了一条管道,它甚至比从互联网上提取图片还要慢!通过执行命令iostat
,我的硬盘io速度刚好超过1740kb / s,并且花费
这使我感到失败。您有什么建议吗? 谢谢你们!
答案 0 :(得分:0)
当我的gitlab-runner服务器是虚拟机时,速度很慢。当我使用真实的服务器时,泊坞窗在一秒钟内提取了所有图像!