Created
June 25, 2024 16:04
-
-
Save denisxab/2f35c8f91ed1207116760dab3f86bdd6 to your computer and use it in GitHub Desktop.
Настройка собственного GitLab CI/CD сервера с помощью Docker Compose
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.5" | |
services: | |
gitlab: | |
image: gitlab/gitlab-ce:latest | |
hostname: "localhost" | |
restart: unless-stopped | |
environment: | |
GITLAB_OMNIBUS_CONFIG: | | |
external_url 'http://localhost' | |
gitlab_rails['gitlab_shell_ssh_port'] = 8822 | |
gitlab_rails['initial_root_password'] = 'CHANGEME123' | |
ports: | |
- "8000:80" | |
- "8822:22" | |
volumes: | |
- ./data/docker/gitlab/etc/gitlab:/etc/gitlab | |
- ./data/docker/gitlab/var/opt/gitlab:/var/opt/gitlab | |
- ./data/docker/gitlab/var/log/gitlab:/var/log/gitlab | |
networks: | |
- gitlab_net | |
dind: | |
image: docker:20-dind | |
restart: always | |
privileged: true | |
environment: | |
DOCKER_TLS_CERTDIR: "" | |
command: | |
- --storage-driver=overlay2 | |
volumes: | |
- ./data/dind/docker:/var/lib/docker | |
networks: | |
- gitlab_net | |
depends_on: | |
- gitlab | |
gitlab-runner: | |
image: gitlab/gitlab-runner:alpine | |
restart: unless-stopped | |
environment: | |
- DOCKER_HOST=tcp://dind:2375 | |
# command: | |
# # Скачаем docker чтобы можно было увидеть какие есть контейнеры | |
# - apk update | |
# - apk add --no-cache docker | |
# - addgroup gitlab-runner docker | |
volumes: | |
- ./config:/etc/gitlab-runner:z | |
- ./data/runner/cache:/cache | |
- /var/run/docker.sock:/var/run/docker.sock | |
networks: | |
- gitlab_net | |
depends_on: | |
- gitlab | |
register-runner: | |
restart: "no" | |
image: gitlab/gitlab-runner:alpine | |
environment: | |
- REGISTRATION_TOKEN=${REGISTRATION_TOKEN} | |
- CI_SERVER_URL=http://gitlab | |
command: | |
- register | |
- --non-interactive | |
- --locked=false | |
# Имя для runner, обычно название такое же как у проекта | |
- --name=${RUNNER_NAME} | |
- --executor=docker | |
# Url до своего gitlab сервера, тут он у нас в одной сети | |
- --url=http://gitlab | |
- --clone-url=http://gitlab | |
- --docker-image=docker:20-dind | |
- --docker-volumes=/var/run/docker.sock:/var/run/docker.sock | |
# Чтобы контейнре мог иметь сетевой доступ к контейнеру с gitlab | |
- --docker-network-mode=host | |
volumes: | |
- ./config:/etc/gitlab-runner:z | |
- ./data/dind/docker:/var/lib/docker | |
networks: | |
- gitlab_net | |
depends_on: | |
- dind | |
networks: | |
gitlab_net: | |
name: gitlab_net |
Привет. в разделе "Управление GitLab Runner" вроде ошибка
Для выполнения команд войдите в контейнер
register-runner
должно быть
Для выполнения команд войдите в контейнер
gitlab-runner
Ещё почему-то при выполнении docker-compose restart register-runner
у меня не подтянулись значения из .env. Такой вариант сработал:
docker compose stop register-runner
docker compose up -d register-runner
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Заголовок:
Настройка собственного GitLab CI/CD сервера с помощью Docker Compose
Введение:
В этой статье мы рассмотрим, как развернуть собственный GitLab сервер и GitLab Runners с использованием Docker Compose. Это руководство поможет вам создать локальную среду для изучения и практики GitLab CI/CD. Мы пройдем через все этапы: от настройки контейнеров до регистрации раннеров и создания примера CI/CD пайплайна. Независимо от того, новичок вы в CI/CD или опытный разработчик, этот гайд предоставит вам ценные знания для улучшения вашего процесса разработки.
Основная часть статьи:
Зачем нужен собственный GitLab сервер?
Собственный GitLab сервер позволяет:
Как запустить свой сервер GitLab в контейнере?
1. Подготовка файловой структуры:
2. Запуск Docker Compose:
Ссылка на docker-compose.yml
3. Доступ к веб-интерфейсу GitLab:
http://localhost:8000/
root
CHANGEME123
4. Настройка SSH-ключа:
http://localhost:8000/-/user_settings/ssh_keys
~/.ssh/id_rsa.pub
Регистрация GitLab Runner для выполнения задач в Docker
.env
:register-runner
:Управление GitLab Runner
Для выполнения команд войдите в контейнер
register-runner
:Пример настройки проекта с GitLab CI/CD
test
git clone ssh://git@localhost:8822/root/test.git
main.py
:.gitlab-ci.yml
:git checkout -b test_ci
git add -A && git commit -m "feat: #12345 Добавлен CI/CD пайплайн"
git push -u origin test_ci
Этот гайд поможет вам настроить локальную среду GitLab CI/CD для изучения и экспериментов. Помните, что для продакшен-среды потребуются дополнительные настройки безопасности и производительности.