В последнее время я учусь на 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
Это официальная веб-страница: Ссылка
Это шаблон от gitlab official. И когда я бегу по трубопроводу, это как будто заклинило. Тогда я знал, что докер тянет много codeclimate
изображений, включая два более 1 ГБ. И, наконец, вытащить эти изображения можно за 15 минут.
Это слишком дорого для меня, поэтому я думаю, что мог бы создать локальный реестр, чтобы ускорить процесс вытягивания (потому что он использует docker в технологии докеров, поэтому каждый раз, когда я запускаю pipline, есть контейнер A и запускаю контейнер B в контейнере A. Таким образом, для контейнера A never никогда не бывает локального образа. Поэтому containerA всегда извлекает образы из реестра.) После того, как я разверну локальный реестр на своем сервере и вставлю в него все 10 ГБ + образов. Я изменил свой .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 - localhost)
И я снова запустил конвейер, это даже медленнее, чем извлечение изображения из Интернета! По выполненной команде iostat
моя скорость жесткого диска чуть выше 1740 Кбит / с, и она стоит
Это заставляет меня чувствовать себя потерянным. Есть ли у вас какие-либо рекомендации?
Спасибо, ребята!