Установка Jenkins

Contents
Установка через Docker в Ubuntu
Jenkins в Docker Compose
Статьи про Jenkins

Установка через Docker в Ubuntu

Предварительно нужно установить Docker

sudo apt -y update
docker pull jenkins/jenkins:lts

lts: Pulling from jenkins/jenkins 67e8aa6c8bbc: Pull complete d4b310eb3fdf: Pull complete 79f2f383117e: Pull complete 8b0534c7187a: Pull complete e4ebc026722c: Pull complete b8b2b1a015c7: Pull complete 1308663db51f: Pull complete a9980750ebb2: Pull complete 771a2a8f3665: Pull complete 8767b747a3d4: Pull complete 68fbb5fc468d: Pull complete 76dd80acf4f6: Pull complete bb3b9e0921fc: Pull complete f469501b9a46: Pull complete c35c92bf7d6e: Pull complete e4260d58d0c6: Pull complete 62d1b6acbca2: Pull complete Digest: sha256:9893bfe43a850a0c80a4dc6e40d212e345ce8ad5537a4cf1d3f2033787a43695 Status: Downloaded newer image for jenkins/jenkins:lts docker.io/jenkins/jenkins:lts

Проверить скачался ли образ можно выполнив

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins lts cb535f2a7054 17 hours ago 464MB

https://github.com/jenkinsci/docker

docker run -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

Running from: /usr/share/jenkins/jenkins.war webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") 2026-07-14 00:01:07.521+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @1893ms to org.eclipse.jetty.util.log.JavaUtilLog 2026-07-14 00:01:07.888+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file 2026-07-14 00:01:11.243+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath 2026-07-14 00:01:11.483+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-9.4.43.v20210629; built: 2021-06-30T11:07:22.254Z; git: 526006ecfa3af7f1a27ef3a288e2bef7ea9dd7e8; jvm 11.0.15+10 2026-07-14 00:01:12.436+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet 2026-07-14 00:01:12.611+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0 2026-07-14 00:01:12.614+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults 2026-07-14 00:01:12.618+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms 2026-07-14 00:01:14.142+0000 [id=1] INFO hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME") 2026-07-14 00:01:14.837+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started w.@3efedc6f{Jenkins v2.332.3,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war} 2026-07-14 00:01:14.926+0000 [id=1] INFO o.e.j.server.AbstractConnector#doStart: Started ServerConnector@3e7634b9{HTTP/1.1, (http/1.1)}{0.0.0.0:8080} 2026-07-14 00:01:14.929+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started @9305ms 2026-07-14 00:01:14.957+0000 [id=23] INFO winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled 2026-07-14 00:01:15.694+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization 2026-07-14 00:01:15.780+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins 2026-07-14 00:01:18.789+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins 2026-07-14 00:01:18.799+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins 2026-07-14 00:01:18.855+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions 2026-07-14 00:01:20.773+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded 2026-07-14 00:01:20.776+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted 2026-07-14 00:01:20.779+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs 2026-07-14 00:01:20.783+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/var/jenkins_home/war/WEB-INF/lib/groovy-all-2.4.21.jar) to method java.lang.Object.finalize() WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 2026-07-14 00:01:21.988+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata 2026-07-14 00:01:22.051+0000 [id=42] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server 2026-07-14 00:01:22.630+0000 [id=28] INFO jenkins.install.SetupWizard#init: ************************************************************* ************************************************************* ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: 321f104e70794cf4b718144333217a3a This may also be found at: /var/jenkins_home/secrets/initialAdminPassword ************************************************************* ************************************************************* ************************************************************* 2026-07-14 00:02:13.751+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization 2026-07-14 00:02:13.836+0000 [id=22] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running 2026-07-14 00:02:15.552+0000 [id=42] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller 2026-07-14 00:02:15.554+0000 [id=42] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1 2026-07-14 00:02:15.569+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 53,575 ms

Примерно в этот момент нужно открыть в браузере url вида ip_jenkins:8080 и скопировать туда пароль

localhost:8080

В данном примере установка идёт в VirtualBox на машине с ip 192.168.56.206, поэтому я ввёл

http://192.168.56.206:8080

Unlock Jenkins изображение с сайта www.aredel.com
Разблокировать Jenkins
www.aredel.com

В случае успеха Вам будет предложено настроить плагины

Customize Jenkins изображение с сайта www.aredel.com
Кастомизировать Jenkins
www.aredel.com

Выберем рекомендованные плагины

Getting Started Jenkins изображение с сайта www.aredel.com
Установка плагинов Jenkins
www.aredel.com

После установки плагинов нужно создать администратора

Create First Admin User Jenkins изображение с сайта www.aredel.com
Создать админа Jenkins
www.aredel.com
Create First Admin User Jenkins изображение с сайта www.aredel.com
Создать админа Jenkins
www.aredel.com

Далее будет предложено внести настройки. Меня пока устраивает то что по умолчанию

Instance Configuration Jenkins изображение с сайта www.aredel.com
Instance Configuration Jenkins
www.aredel.com

Теперь Jenkins готов к работе.

Jenkins is Ready изображение с сайта www.aredel.com
Jenkins готов к работе
www.aredel.com

Где-то в процессе настройки я получил следующее сообщение

client_loop: send disconnect: Broken pipe

И меня выкинуло и из запуска контейнера и из виртуалки. Поэтому я перезашёл туда и проверил обстановку

root@ubuntuserver:/home/andrei# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins lts cb535f2a7054 18 hours ago 464MB

root@ubuntuserver:/home/andrei# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f6f4521cd9a3 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 53 minutes ago Up 53 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp tender_ardinghelli

Banner Image

Jenkins в Docker Compose

Предварительно нужно установить Docker Compose

Структура

qa-demo-project ├── docker-compose.yml ├── dockerfiles │ ├── Dockerfile.jenkins └── GNUmakefile

# docker-compose.yml version: '3.8' services: jenkins: # image specified in Dockerfile # image: jenkins/jenkins:lts restart: always privileged: true user: root build: context: ./dockerfiles dockerfile: Dockerfile.jenkins args: buildversion: 1 ports: - "8080:8080" - "50000:50000" container_name: jenkins networks: net1: ipv4_address: 10.5.0.6 jenkins: ipv4_address: 10.7.0.6 volumes: - /var/run/docker.sock:/var/run/docker.sock networks: net1: driver: bridge ipam: config: - subnet: 10.5.0.0/16 gateway: 10.5.0.1 jenkins: driver: bridge ipam: config: - subnet: 10.7.0.0/16 gateway: 10.7.0.1

Dockerfile.jenkins

FROM jenkins/jenkins:2.375.1 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ https://download.docker.com/debian/gpg RUN echo "deb [arch=$(dpkg --print-architecture) \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean:1.26.0 docker-workflow:563.vd5d2e5c4007f"

GNUmakefile

PHONY: jenkins-docker jenkins-docker: # docker compose build jenkins docker compose up -d jenkins docker exec -it jenkins bash

Запустить скрипт из репозитория

Настройка Jenkins для запуска скрипта из github репозитория Source Code Management изображение с сайта www.aredel.com
Source Code Management - Git
www.aredel.com
Настройка Jenkins для запуска скрипта из github репозитория Build Steps изображение с сайта www.aredel.com
Build Steps - Execute Shell
www.aredel.com
Статьи про Jenkins
Jenkins
Install Jenkins
Jenkins Basics
Jenkins Pipeline
Schedule
Errors
DevOps
Docker
Make

Search on this site

Subscribe to @aofeed channel for updates

Visit Channel

@aofeed

Feedback and Questions in Telegram

@aofeedchat