Прежде всего, вы, очевидно, можете использовать возможности GitLab CI / CD на https://gitlab.com, а также на автономных экземплярах GitLab.Это ничего не меняет, кроме хоста, на котором вы зарегистрируете вашего бегуна:
Вы можете добавить столько бегунов, сколько захотите (я так думаю, и, по крайней мере, у меня есть 5-6 участников на проект без проблем).Вам просто нужно зарегистрировать каждого из этих участников для вашего проекта.См. Регистрация участников .
Что касается общих бегунов по сравнению с конкретными бегунами, я думаю, что вы должны придерживаться общих бегунов, если хотите попробовать GitLab CI / CD.
Общие бегуны на GitLab.com запускаются в автоматическом масштабережим и питание от DigitalOcean.Автоматическое масштабирование означает сокращение времени ожидания для ускорения сборок и выделение виртуальных машин для каждого проекта, что обеспечивает максимальную безопасность.
Они могут свободно использоваться для общедоступных проектов с открытым исходным кодом и ограничены 2000 CI минутами в месяц на группу для частных лиц.проекты.Читайте обо всех планах GitLab.com.
Вы можете установить собственные бегуны на любой машине, например, на ноутбуке.Вы можете развернуть его с помощью Docker для быстрого запуска.
Наконец, да, вы можете использовать docker-compose в файле gitlab-ci.yml
, если вы используете ssh
executor и имеете docker-compose
установить на свой сервер.Но я рекомендую использовать docker
executor и использовать docker:dind
(Docker в Docker) image
Что такое Docker в Docker?
Хотя работает DockerВнутри Docker, как правило, не рекомендуется, есть> некоторые законные варианты использования, такие как разработка самого Docker.
Вот пример использования, без docker-compose
, хотя:
image: docker:latest
services:
- name: docker:dind
command: ["--experimental"]
before_script:
- apk add --no-cache py-pip # <-- add python package install pip
- pip install docker-compose # <--- add docker-compose
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin # <---- Login to your registry
build-master:
stage: build
script:
- docker build --squash --pull -t "$CI_REGISTRY_USER"/"$CI_REGISTRY_IMAGE":latest .
- docker push "$CI_REGISTRY_USER"/"$CI_REGISTRY_IMAGE":latest
only:
- master
build-dev:
stage: build
script:
- docker build --squash --pull -t "$CI_REGISTRY_USER"/"$CI_REGISTRY_IMAGE":"$CI_COMMIT_REF_SLUG" .
- docker push "$CI_REGISTRY_USER"/"$CI_REGISTRY_USER":"$CI_COMMIT_REF_SLUG"
except:
- master
Как видите, я создаю образ Docker, отмечаю его, затем помещаю в мой реестр Docker, но вы можете отправить его в любой реестр.И, конечно, вы можете использовать docker-compose в любое время в объявлении script
Мой Git-репозиторий выглядит так:
/my_repo
|---- .gitignore
|---- .gitlab-ci.yml
|---- Dockerfile
|---- README.md
А config.toml моего бегуна выглядит так:
[[runners]]
name = "4Gb digital ocean vps"
url = "https://gitlab.com"
token = "efnrong44d77a5d40f74fc2ba84d8"
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker:dind"
privileged = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
shm_size = 0
[runners.cache]
Вы можете взглянуть на https://docs.gitlab.com/runner/configuration/advanced-configuration.html для получения дополнительной информации о конфигурации Runner.
Примечание. Все используемые здесь переменные секретные переменные .См. https://docs.gitlab.com/ee/ci/variables/ для объяснений
Я надеюсь, что он отвечает на ваши вопросы