Help us understand the problem. What is going on with this article?

Docker上でCentOSコンテナを立てて、Jenkinsをインストールする

More than 3 years have passed since last update.

初めに

Docker上でjenkins環境を構築してみます。
jenkinsの基本的な使い方等は含まれません。

centosの公式リポジトリ
https://hub.docker.com/_/centos/
Dockerfile リファレンス
http://docs.docker.jp/v1.12/engine/reference/builder.html
RedHat Linux RPM packages for Jenkins
http://pkg.jenkins.io/redhat/

ゴール

Docker上で以下の環境を作ることをゴールにします。
- CentOS 7
- jenkins RedHatに登録されているjenkinsの最新バージョン

※実際にはCentOSがなくてもdocker pull jenkinsでjenkinsが使えますあえてCentOS上にたてています。
直接jenkinsコンテナをたてたい方はこちら。
https://hub.docker.com/_/jenkins/

Docker環境

Docker version 17.06.1-ce, build 874a737

※DockerはDocker for Macを利用しています。

Dockerfileの作成

vi Dockerfile
FROM centos:7

# Jenkinsインストールに必要なパッケージインストール
RUN yum -y update
RUN yum -y install wget
RUN yum -y install java-1.8.0-openjdk-devel
RUN yum -y install initscripts


# jenkins yumリポジトリ登録
RUN wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
RUN rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

# Jenkinsインストール
RUN yum -y install jenkins
RUN yum clean all

docker buildでイメージを生成

Dockerfileを作成したディレクトリでbuildコマンドを実行
-t my_project/jenkinsはタブ名なので任意

$ docker build -t my_project/jenkins .

最後にこんな感じで表示されれば成功

Successfully built 9944b09247fa
Successfully tagged my_project/jenkins:latest

ちゃんと出来ていることを確認

$ docker images
REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
my_project/jenkins                      latest              9944b09247fa        About a minute ago   971MB

docker runでコンテナ起動

jenkinsの起動でsystemctlを利用するのでprivileged(特権オプション)で起動します。

※デフォルトではコンテナにDockerデーモンを実行する権限はありません。
以下の実行時の権限、Linux 機能、LXC 設定を参照。
http://docs.docker.jp/engine/reference/run.html

$ docker run --privileged -i -d -p 8080:8080 --name jenkins my_project/jenkins /sbin/init
$ docker ps
CONTAINER ID        IMAGE                                   COMMAND             CREATED             STATUS              PORTS                    NAMES
ca3ee086889f        my_project/jenkins                      "/sbin/init"        4 seconds ago       Up 4 seconds        0.0.0.0:8080->8080/tcp   jenkins

jenkinsの起動

docker execでコンテナ内へ

docker exec -it jenkins /bin/bash

再起動時にも自動で起動するように設定

# chkconfig jenkins on

サービス起動

# systemctl start jenkins

# ps -ef|grep jenkins |grep -v grep
jenkins     98     1 10 12:10 ?        00:00:27 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

起動確認

早速 http://localhost:8080 へアクセスすると無事起動していますね!
あとは画面の指示に従い,/var/lib/jenkins/secrets/initialAdminPasswordのパスワードでログインします。

image.png

今回は推奨のプラグインでインストールしてみますので、Install suggested pluginsを選択
image.png

処理中・・・
image.png

管理者ユーザを作成
image.png

完成!
image.png

image.png

これで楽しいjenkinsの第一歩ですね!

naoto-guitar
これからdocker、Rails、Neo4j周りの投稿を多めにまとめていきます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away