GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak spustit Jenkins Container jako službu Systemd pomocí Dockeru

Opakující se úkoly jsou obvykle únavné a nakonec vám zaberou spoustu času a energie. Postupem času bylo vyvinuto několik automatizačních nástrojů, které pomáhají zmírnit potíže s prováděním opakujících se úloh. Jedním z takových automatizačních nástrojů je Jenkins. Jenkins je opensource automatizační server, který je navržen tak, aby pomáhal vývojářům softwaru vytvářet, testovat a nasazovat aplikace, a tím zefektivnit nepřetržitou integraci a proces dodávání.

Již dříve jsme napsali článek o tom, jak nainstalovat Jenkins na CentOS 8/RHEL 8. V tomto článku uděláme věci trochu jinak a spustíme kontejner Jenkins jako službu systemd s dockerem.

Předpoklady

Než budete pokračovat, je potřeba provést několik věcí.

  • Docker nainstalovaný ve vašem systému Linux.
  • Běžný uživatel s právy sudo.

Krok 1) Nainstalujte Docker Engine

Chcete-li začít, musíte mít v systému nainstalovaný Docker engine. Máme podrobný článek o tom, jak nainstalovat Docker na CentOS 8 / RHEL 8. Spusťte níže příkaz docker pro zobrazení verze dockeru

$ sudo docker version

Z úryvku výše jsme potvrdili, že je nainstalován docker a že používáme verzi dockeru 19.03.13.

Krok 2) Vytvořte uživatele Jenkins

Dále vytvoříme uživatele systému „Jenkins“, který bude spravovat službu Jenkins. Nejprve však vytvořte systémovou skupinu pro Jenkinse:

$ sudo groupadd --system jenkins

Poté vytvořte uživatele systému Jenkins

$ sudo useradd -s /sbin/nologin --system -g jenkins jenkins

A nakonec přidejte uživatele Jenkins do skupiny dockerů, jak je znázorněno:

$ sudo usermod -aG docker jenkins

Chcete-li potvrdit, že uživatel Jenkins je přidán do skupiny dockerů, spusťte příkaz id podle obrázku

$ id jenkins

Výstup bude,

[[email protected] ~]$ id jenkins
uid=991(jenkins) gid=986(jenkins) groups=986(jenkins),989(docker)
[[email protected] ~]$

Fantastický! Pokračujme a vytáhněte Jenkinsův obrázek.

Krok 3)  Vytáhněte Jenkinsův obrázek z centra Docker

Chcete-li stáhnout nejnovější bitovou kopii Jenkins z centra Docker, vyvolejte následující příkaz.

$ sudo docker pull jenkins/jenkins:lts

Při poměrně stabilním internetovém připojení to obvykle trvá několik sekund. Po stažení ověřte, zda je přítomen Jenkinsův obrázek, vyvoláním následujícího příkazu:

$ sudo docker images | grep jenkins

Výstup výše uvedeného příkazu by byl:

[[email protected] ~]$ sudo docker images | grep jenkins
jenkins/jenkins     lts                 f669140ba6ec        6 days ago          711MB
[[email protected] ~]$

Jenkins vyžaduje trvalé úložiště pro ukládání dat a opětovné použití i v případě havárie kontejneru. Proto vytvoříme adresář úložiště, jak je znázorněno.

$ sudo mkdir /var/jenkins
$ sudo chown -R 1000:1000 /var/jenkins

Krok 4) Vytvořte službu systemd pro Jenkinse

Pomocí preferovaného textového editoru vytvořte soubor Jenkins systemd, jak je znázorněno:

$ sudo vi /etc/systemd/system/jenkins-docker.service

Vložte následující obsah a uložte soubor.

[Unit]
Description=Jenkins Server
Documentation=https://jenkins.io/doc/
After=docker.service
Requires=docker.service

[Service]
Type=simple
User=jenkins
Group=jenkins
TimeoutStartSec=0
Restart=on-failure
RestartSec=30s
ExecStartPre=-/usr/bin/docker kill jenkins-server
ExecStartPre=-/usr/bin/docker rm jenkins-server
ExecStartPre=/usr/bin/docker pull jenkins/jenkins:lts
ExecStart=/usr/bin/docker run  --name jenkins-server  --publish 8080:8080 --publish 50000:50000  --volume /var/jenkins:/var/jenkins_home  jenkins/jenkins:lts
SyslogIdentifier=jenkins
ExecStop=/usr/bin/docker stop jenkins-server

[Install]
WantedBy=multi-user.target

Chcete-li spustit službu Jenkins, nejprve znovu načtěte systemd a poté spusťte Jenkins.

$ sudo systemctl daemon-reload
$ sudo systemctl start jenkins-docker

Nyní zkontrolujeme, zda Jenkins běží. Za tímto účelem provedeme:

$ sudo systemctl status jenkins-docker

Skvělý ! Jenkins funguje jako systémová služba. Protože Jenkins poběží na portu 8080, otevřete port na bráně firewall, jak je znázorněno:

$ sudo firewall-cmd --permanent --add-port=8080/tcp
$ sudo firewall-cmd --reload

Chcete-li nastavit Jenkins, jednoduše projděte adresu URL serveru, jak je znázorněno

http://server-ip:8080

Zobrazí se stránka „Odemknout Jenkinse“, jak je znázorněno. Chcete-li pokračovat, musíte zadat heslo, které se nachází v zobrazeném souboru

[[email protected] ~]$ cat /var/jenkins/secrets/initialAdminPassword
9c61bd823a404056bf0a408f4622aafc
[[email protected] ~]$

Po dokončení klikněte na „Pokračovat“

Dále vyberte možnost „Instalovat navrhované pluginy“, jak je znázorněno.

Poté vytvořte administrátora pro účet Jenkins a klikněte na „Uložit a pokračovat“

Instalační program vás provede zbývajícími kroky až do úplného konce. Po úspěšné instalaci získáme následující Jenkins dashboard

A je to zábal. V této příručce jste se naučili, jak spustit Jenkins v kontejneru dockeru jako službu systemd.

Přečtěte si takéJak nainstalovat a nakonfigurovat Jenkins na Ubuntu 20.04


Docker
  1. Jak nainstalovat Jenkins pomocí Docker

  2. Jak nasadit kontejner nginx s Dockerem na Linode

  3. Jak spustit příkaz na spuštěném kontejneru Docker

  1. Jak nainstalovat WordPress s Dockerem na Ubuntu

  2. Jak spustit program uvnitř kontejneru Docker?

  3. Jak spustit MySQL v kontejneru Docker

  1. Jak používat příkaz Docker Run s příklady

  2. Jak spouštět kontejnery jako službu Systemd s Podmanem

  3. Jak spustit skript s systemd těsně před vypnutím?