service:jenkins
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:jenkins [01.08.2022 13:55] – [Docker] viacheslav | service:jenkins [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Jenkins ====== | ||
+ | Документация: | ||
+ | Jenkins с открытыми пайплайнами: | ||
+ | |||
+ | Статьи: | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | Видео: | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | ===== Docker ===== | ||
+ | Тонкость в том, что если Jenkins работает в контейнере, | ||
+ | |||
+ | - Примонтировать ''/ | ||
+ | - Установить docker-cli в контейнере Jenkins. | ||
+ | - Создать группу '' | ||
+ | - GID группы '' | ||
+ | <code bash> | ||
+ | # На хосте нужно задать системную переменную | ||
+ | export DOCKERGID=$(grep ^docker /etc/group |cut -d: -f 3) | ||
+ | # Она нужна, чтобы её значение использовать параметре ARG в Dockerfile | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | <code yaml> | ||
+ | # This docker-compose file intent to run a Jenkins container connected to the host machine Docker daemon. | ||
+ | # | ||
+ | # A discussion about potential security issues and improvements on this approach can be found at: | ||
+ | # https:// | ||
+ | # | ||
+ | # Source: http:// | ||
+ | |||
+ | version: ' | ||
+ | |||
+ | volumes: | ||
+ | jenkins-data: | ||
+ | |||
+ | services: | ||
+ | |||
+ | jenkins: | ||
+ | image: jenkinsci/ | ||
+ | restart: always | ||
+ | ports: | ||
+ | - 8080:8080 | ||
+ | - 50000:50000 | ||
+ | tty: true | ||
+ | volumes: | ||
+ | - jenkins-data:/ | ||
+ | - / | ||
+ | </ | ||
+ | https:// | ||
+ | </ | ||
+ | <WRAP half column> | ||
+ | <file yaml Dockerfile> | ||
+ | FROM jenkins/ | ||
+ | |||
+ | USER 0 | ||
+ | |||
+ | ARG DOCKERGID=998 | ||
+ | |||
+ | # Docker | ||
+ | RUN apt-get update \ | ||
+ | && apt-get install software-properties-common apt-transport-https ca-certificates gnupg-agent dialog apt-utils -y \ | ||
+ | && curl -fsSL https:// | ||
+ | && add-apt-repository \ | ||
+ | "deb [arch=amd64] https:// | ||
+ | $(lsb_release -cs) \ | ||
+ | stable" | ||
+ | && apt-get update \ | ||
+ | && apt-get install docker-ce-cli -y | ||
+ | |||
+ | # Setup users and groups | ||
+ | RUN addgroup --gid ${DOCKERGID} docker | ||
+ | RUN usermod -aG docker jenkins | ||
+ | |||
+ | USER 1000 | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Для варианта с Alpine: | ||
+ | <file yaml Dockerfile> | ||
+ | FROM jenkins/ | ||
+ | |||
+ | USER 0 | ||
+ | |||
+ | ARG DOCKERGID=998 | ||
+ | |||
+ | # Docker | ||
+ | RUN apk -U update && apk add docker-cli | ||
+ | |||
+ | # Setup users and groups | ||
+ | RUN addgroup -g ${DOCKERGID} docker | ||
+ | RUN addgroup jenkins docker | ||
+ | |||
+ | USER 1000 | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | <code bash> | ||
+ | docker run --rm --name jenkins -p 8080:8080 -p 50000:50000 jenkins/ | ||
+ | docker run --rm --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/ | ||
+ | docker run --rm --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/ | ||
+ | docker run --rm --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/ | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | ===== Проекты ===== | ||
+ | Freestyle - для простых одиночных задач, например, | ||
+ | Pipeline - полный цикл сборки, | ||
+ | Multibranch pipeline - пайплайн для сразу нескольких веток репозитория. | ||
+ | |||
+ | ==== Credentials ==== | ||
+ | Scope: | ||
+ | * Global - доступны везде | ||
+ | * System - только для сервера Jenkins (не применяются к проектам) | ||
+ | * Внутри Multibranch pipeline тоже есть пункт с настройкой учётных данных, | ||
+ | |||