Далее можете идти путем оригинала черз докер создание gitlab или по моим статьям... Оригинал: docker-compose.yml:
# docker-compose up -d gitlab
Заходим по url, настраиваем пароль root
Создаём новый, приватный проект - "gitlab-ci-proj"
Далее меняете только свой url:
# git remote add origin http://10.0.2.11/root/gitlab-ci-proj.git
# git add .
# git commit -m "Initial commit"
# git push -u origin master
Воодите root и пароль - проверяйте
Стадия "Build"
Для того, чтоб GitLab делал действия после git push, нужно сделать 2 пункта:
1) .gitlab-ci.yml - файл с инструкциями, когда и что делать 2) машина\сервер\хост\виртуалка\контейнер - в терминологии GitLab называется "runner", который будет выполнять инструкции
.gitlab-ci.yml:
Секция stages описывает стадии
Строка stage: build описывает, что задача под названием Compile принадлежит стадии build
Строка tags описывает, какие тэги должны быть на runner хосте, чтоб ему можно было эту задачу доверить
При коммите .gitlab-ci.yml на странице "Pipelines" проекта появится задача в статусе pending:
# git add .gitlab-ci.yml
# git commit -m "add gitlab-ci"
# git push -u origin master
GitLab постарался её запустить, но т. к. нету раннер-хоста с тегом typescript, задача в ожидании
Настройка gitlab-runner сервиса
# mkdir /data/runner && cd /data/runner
# mkdir runner-ts
На этом шаге можете пользоваться материалом оригинала или моей предыдущей статьей
Оригинал:
runner-ts/Dockerfile:
Где: -u - передаётся адрес, на котором живёт GitLab сервер -r - токен регистрации, узнать его можно на странице GitLab -> Settings -> admin/runners --executor объясняет каким образом интерпретировать и запускать команды из .gitlab-ci.yml. В нашем случае обычные шелл команды, значение передали shell --tag-list - в нашем случае — какие фичи поддерживает раннер. У нас установлен только TypeScript, вот его-то я в теги и передал.
docker-compose.yml Добавим:
# docker-compose up -d runner-ts
По пути в гитлабе admin/runners мы его увидим
А в пайплайнах нашего проекта задача изменит свой статус
Добавим шаг по развертыванию наших файликов index в "бой"
Для начала создадим папки для вебсервера:
# cd /data/runner && mkdir web && mkdir www
Файл для сборки nginx /data/runner/web/Dockerfile:
И добавим шаг копирования index файлов после успешного теста: /data/test/.gitlab-ci.yml:
/data/runner/docker-compose.yml:
Соберем и запустим контенер:
# cd /data/runner/ && docker-compose up --build -d
Наши файлы при успешной сборке появятся в каталоге:
# cat /data/runner/www/index.js
# curl http://10.0.2.11/
Кстати о птичках, водке и тушенке! Делал все это на виртуалке виртуалбоксной.
Когда с ПК пробросил порт и не смог браузером открыть, напоролся на политики iptables:
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
Комментарии пользователей
Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!