GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerを使用してJenkinsコンテナをSystemdサービスとして実行する方法

繰り返しの作業は通常退屈で、多くの時間とエネルギーを消費することになります。時間の経過とともに、反復的なジョブを実行する煩わしさを軽減するのに役立つ複数の自動化ツールが開発されてきました。そのような自動化ツールの1つがJenkinsです。 Jenkinsは、ソフトウェア開発者がアプリケーションを構築、テスト、デプロイし、それによって継続的インテグレーションとデリバリープロセスを合理化するのに役立つように設計されたオープンソースの自動化サーバーです。

以前、CentOS 8 / RHEL 8にJenkinsをインストールする方法についての記事を書きました。この記事では、少し異なることを行い、Jenkinsコンテナーをdockerを使用したsystemdサービスとして実行します。

前提条件

続行する前に、いくつかのことが必要です。

  • LinuxシステムにDockerがインストールされています。
  • sudo権限を持つ通常のユーザー。

ステップ1)DockerEngineをインストールします

まず、Dockerエンジンをシステムにインストールする必要があります。 CentOS 8 / RHEL 8にDockerをインストールする方法についての詳細な記事があります。以下のdockerコマンドを実行して、dockerのバージョンを表示します

$ sudo docker version

上記のスニペットから、dockerがインストールされており、dockerバージョン19.03.13を実行していることを確認しました。

ステップ2)Jenkinsユーザーを作成します

次に、Jenkinsサービスを管理する「Jenkins」システムユーザーを作成します。ただし、最初に、Jenkinsのシステムグループを作成します。

$ sudo groupadd --system jenkins

次に、Jenkinsシステムユーザーを作成します

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

最後に、次のようにJenkinsユーザーをdockerグループに追加します。

$ sudo usermod -aG docker jenkins

Jenkinsユーザーがdockerグループに追加されていることを確認するには、次のようにidコマンドを実行します

$ id jenkins

出力は、

になります
[[email protected] ~]$ id jenkins
uid=991(jenkins) gid=986(jenkins) groups=986(jenkins),989(docker)
[[email protected] ~]$

素晴らしい!先に進んで、Jenkinsの画像をプルしましょう。

ステップ3)DockerハブからJenkinsイメージをプルする

次のコマンドを呼び出して、Dockerハブから最新のJenkinsイメージをプルします。

$ sudo docker pull jenkins/jenkins:lts

これは通常、かなり安定したインターネット接続で数秒かかります。ダウンロードしたら、次のコマンドを呼び出して、Jenkinsイメージが存在することを確認します。

$ sudo docker images | grep jenkins

上記のコマンドの出力は次のようになります:

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

Jenkinsは、データを保存し、コンテナがクラッシュした場合でも再利用するために永続ストレージを必要とします。したがって、図のようにストレージディレクトリを作成します。

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

ステップ4)Jenkinsのsystemdサービスを作成する

好みのテキストエディタを使用して、次のようにJenkinssystemdファイルを作成します。

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

次の内容を貼り付けてファイルを保存します。

[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

Jenkinsサービスを開始するには、最初にsystemdをリロードしてから、Jenkinsを起動します。

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

Jenkinsが実行されているかどうかを確認しましょう。そのために、以下を実行します:

$ sudo systemctl status jenkins-docker

素晴らしい ! Jenkinsはsystemdサービスとして稼働しています。 Jenkinsはポート8080で実行されるため、次のようにファイアウォールのポートを開きます。

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

Jenkinsを設定するには、図のようにサーバーのURLを参照するだけです

http:// server-ip:8080

図のように「UnlockJenkins」ページが表示されます。続行するには、表示されているファイルにあるパスワードを入力する必要があります

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

完了したら、[続行]をクリックします

次に、図のように[推奨プラグインをインストールする]オプションを選択します。

その後、Jenkinsアカウントの管理ユーザーを作成し、[保存して続行]をクリックします

インストーラーは、残りの手順を最後までガイドします。インストールが正常に完了すると、次のJenkinsダッシュボードが表示されます

そして、それはラップです。このガイドでは、dockerコンテナ内でJenkinsをsystemdサービスとして実行する方法を学びました。

また読むUbuntu20.04にJenkinsをインストールして構成する方法


Docker
  1. LinodeにDockerを使用してnginxコンテナをデプロイする方法

  2. 実行中のDockerコンテナでコマンドを実行する方法

  3. シャットダウン直前にsystemdでスクリプトを実行する方法は?

  1. Dockerを使用してJenkinsをインストールする方法

  2. Dockerコンテナ内でプログラムを実行する方法は?

  3. DockerコンテナでMySQLを実行する方法

  1. 例を使用してDockerRunコマンドを使用する方法

  2. PodmanでSystemdサービスとしてコンテナを実行する方法

  3. UbuntuにDockerでWordPressをインストールする方法