Установка Jenkins

Содержание
Установка через 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-10-17 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-10-17 00:01:07.888+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file 2026-10-17 00:01:11.243+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath 2026-10-17 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-10-17 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-10-17 00:01:12.611+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0 2026-10-17 00:01:12.614+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults 2026-10-17 00:01:12.618+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms 2026-10-17 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-10-17 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-10-17 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-10-17 00:01:14.929+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started @9305ms 2026-10-17 00:01:14.957+0000 [id=23] INFO winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled 2026-10-17 00:01:15.694+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization 2026-10-17 00:01:15.780+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins 2026-10-17 00:01:18.789+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins 2026-10-17 00:01:18.799+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins 2026-10-17 00:01:18.855+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions 2026-10-17 00:01:20.773+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded 2026-10-17 00:01:20.776+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted 2026-10-17 00:01:20.779+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs 2026-10-17 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-10-17 00:01:21.988+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata 2026-10-17 00:01:22.051+0000 [id=42] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server 2026-10-17 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-10-17 00:02:13.751+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization 2026-10-17 00:02:13.836+0000 [id=22] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running 2026-10-17 00:02:15.552+0000 [id=42] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller 2026-10-17 00:02:15.554+0000 [id=42] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1 2026-10-17 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

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

Article author: Andrei Olegovich

Статьи про Jenkins
Jenkins
Install Jenkins
Jenkins Basics
Jenkins Pipeline
Schedule
Errors
DevOps
Docker
Make

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: