Описание
Данный проект представляет собой набор инструментов для локального развёртывания следующих продуктов:
- Jenkins
- Gitea
- Private Docker Registry
- gitsync
- Вспомогательные утилиты oscript
Данные продукты чаще всего используются для построения конвейера непрерывной поставки конфигурации 1C:Предприятия.
Развёртывание
☝️ Предварительно скорректируйте файл .env под своё окружение:
cp .env.example .env
Jenkins master
Первым делом необходимо развернуть Jenkins:
docker-compose -f infra/ci/docker-compose.ci.yml -p ci up -d jenkins
Дождаться пока Jenkins полностью будет готов к работе. Один из вариантов, посмотреть логи старта контейнера:
docker-compose -f infra/ci/docker-compose.ci.yml -p ci logs -f jenkins
при появлении надписи
INFO: Jenkins is fully up and running
Jenkins полностью готов к работе и доступен по адресу http://localhost:8080.
Jenkins slave
Далее следует получить секретный ключ для подключения slave к мастер-ноде Jenkins.
Запускаем:
docker run --rm --entrypoint=sh byrnedo/alpine-curl -c 'curl -L -s -X GET \
    http://host.docker.internal:8080/computer/slave/slave-agent.jnlp \
    | sed "s/.*<application-desc main-class=\"hudson.remoting.jnlp.Main\"><argument>\([a-z0-9]*\).*/\1/"'
полученный секретный ключ экспортруем в переменную JENKINS_SLAVE_SECRET, например:
export JENKINS_SLAVE_SECRET=2ff4a384d18a5f151d9fac4841414054bfd6450bef411d798ec71208e0afc1d9
Запускаем slave и остальные сервисы:
docker-compose -f infra/ci/docker-compose.ci.yml -p ci up -d
Git
Создадим учётную запись onec с паролем Shee5i:
docker-compose -f infra/ci/docker-compose.ci.yml -p ci exec -u git git \
 gitea admin create-user --name onec --email onec@localhost --admin -password Shee5i
Сервер Git доступен по адресу http://localhost:3000. Для авторизации используйте следующие учётные данные:
- Username: onec
- Password: Shee5i
Private Docker Registry
Учётные данные для логина в приватный Docker Registry:
- Username: john
- Password: doe
echo 'doe' | docker login --username john --password-stdin localhost:5000
Отправка локальных образов в приватный Docker Registry:
docker push localhost:5000/onec-server
docker push localhost:5000/oscript-utils