Pref.
Jenkins on Docker for Macについてやる気を出してまとめてみました。
- Jenkinsとは
- JenkinsをDocker上で動かしてみる with macOS
- Jenkinsの最初の設定
- Jenkinsコンテナの停止
Env.
macOS High Sierra ver.10.13.4
Docker Version 18.05.0-ce-rc1-mac63 (24246)
Jenkinsとは
Jenkinsとは開発時のビルドとテストを継続的に行うことによって致命的なバグなどを早期発見することで、
アプリケーション開発期間を短期化するための自動化ツール、オープンソースの継続的インテグレーションツール(CIシステム)である。
また、Jenkinsは内部はJavaで動いている。
Docker for Mac を macOSで起動させる
Docker for Macを利用してmac上でDockerを動かします。
Docker公式ページ
Docker for MacのDL
https://store.docker.com/editions/community/docker-ce-desktop-mac
にアクセスをし、ページの中ほどにある
Get Docker CE for Mac (Edge)をダウンロードします。
ページ上部にある通常のダウンロードでなくEdgeバージョンをDLすることで、Kubernetesを後に扱うことができます。
Docker for Macのインストール
DLしたdmgをマウントし、いつも通りにインストールします。
インストールを進めてタスクバー付近に以下の画面が表示され、Docker is now up runnning!が表示されればインストールは完了で、Dockerが動作しています。
またタスクバーのDockerのクジラを右クリックして以下の詳細画面がでるので、Preferencesをクリックすることで、Dockerの設定をGUIで行うこともできます。
TerminalからJenkinsをDocker上で起動
https://hub.docker.com/(Docker hub)から公式のJenkinsのDockerイメージを取得後、稼働させることでJenkinsがDocker上で動作します。
以下のコマンドでホームディレクトリにDockerディレクトリを作り、Dockerコマンドを用いてDocker上でJenkinsを起動します。
以下のコマンドの[Username]の部分には自分のmacのユーザ名を入力して下さい。
$ cd
$ mkdir Docker
$ docker run -p 8080:8080 -p 50000:50000 -d --rm --name jenkins \
-v /Users/[Username]/Docker/jenkins:/var/jenkins_home jenkins
~/Dockerディレクトリなどの中で起動しないとホームディレクトリが荒れたりします。
--name [name] コンテナに名前をつけて起動
--rm コンテナ終了時にキャッシュファイル等を同時に削除(?)
初回起動時にJenkinsのDockerイメージのダウンロードが行われます。
その時のターミナルの画面は以下のような感じです。
その後自動的に起動され、起動完了後以下のコマンドで動作中コンテナを確認できます。
$ docker ps -a
jenkinsという名前のコンテナを確認できます。
Jenkinsの設定
ターミナルで以下のコマンドを実行します。
$ docker logs jenkins
すると以下のようなパスワードが表示されるのでコピーしておきます。
webブラウザを起動しlocalhost:8080にアクセスします。
または[hostのipアドレス:8080]にアクセスします.
初回起動時のパスワード入力画面が表示されるのでlogからコピーしたパスワードをペーストします。
次に以下のカスタムパッケージをどうインストールするかの画面が出てくるので、詳しい人なら右のSelect Plugins to installを選択、よくわからない人は左のInstall suggested pluginをクリックします。特にこだわりがない場合は左のSuggestedの方でいいと思います。自分は左を選択しました。
インストールが開始されます。
終わるまで少し時間がかかるのでポテチでも取ってきます。
インストールが完了するとCreate First Admin UserというAdminユーザを作成する画面が表示されますが、ユーザ名などを全て入力してSave and Finishをクリックして下さい。
Jenkinsコンテナの停止方法
DockerのコンテナとしてJenkinsは動作しているので以下のコマンドを叩いて上げることでJenkinsコンテナが終了されます。
$ docker stop jenkins
コンテナ一覧を表示しJenkinsコンテナがなくなっていたら正常に終了できています。