みなさんこんにちは!
イザナギです。
最近はDockerを学習しようと思って、教材を使いながら学習していたんですよ!
その教材がこちら!
Dcokerで「jenkins」試してたら作業が進まなくなった話

この教材を使ってDockerについて学習していました。
しかし、この本通り進めていくと途中でハマってしまいました...
まじかよ!本通り進めてんのに進まないじゃん!
エラー内容としては、
- プラグインインストール画面でエラーが発生(依存関係?の問題でインストールできていない)
- 新規ノードを作成しても接続できていない(Authentication failed.)
今回は、以上のエラーを解消するためにさまざまなことを試しましたので、その結果を書いていきたいと思います。
試したこと
公式ホームページの情報を試す(失敗)
まず、公式のサポートページに書いてあることを試してみます。(P.78 # 2.6.3の最初のリストのjenkinsのイメージ名)
サポートページ:Docker/Kubernetes 実践コンテナ開発入門
本には、「dcoker-compose.yml」が以下の通りになっていました。
services:
master:
container_name: master
image: jenkins:2.60.3
ports:
- 8080:8080
volumes:
- .jenkins_home:/var/jenkins_home
links:
- slave01
slave01:
container_name: slave01
image: jenkinsci/ssh-slave
environment:
- JENKINS_SLAVE_SSH_PUBKEY= ssh-rsa ~
しかし、現在はこれでは動作しないみたいです。
ですので、サポートページにもあるとおり以下の通りに変えてみましょう!
services:
master:
container_name: master
image: jenkinsci/jenkins:2.142-slim
ports:
- 8080:8080
volumes:
- .jenkins_home:/var/jenkins_home
links:
- slave01
slave01:
container_name: slave01
image: jenkinsci/ssh-slave
environment:
- JENKINS_SLAVE_SSH_PUBKEY= ssh-rsa ~
「image」の部分を「image: jenkins:2.60.3」から「image: jenkinsci/jenkins:2.142-slim」に変更しています。
そして、「.jenkins_home」フォルダを削除してもう一回本の通り「docker-compose up」してプラグインをインストールしてみます。
なんか所々インストールできていない...
もちろんノード設定もできない...
これじゃダメっぽい。
jenkinsの最新版を試してみる(成功)
こちらの記事を参考にして、jenkinsの最新版を試して見ることにしました。
dockerでjenkins構築(2020年05月時点) - Qiita
こちらの本の通りに進めていたところ
「docker-compose.yml」を以下の通り書き直します。
version: "3"
services:
master:
container_name: master
image: jenkins/jenkins:latest
ports:
- 8080:8080
volumes:
- ./jenkins_home:/var/jenkins_home
links:
- slave01
slave01:
container_name: slave01
image: jenkins/ssh-slave:latest
environment:
- JENKINS_SLAVE_SSH_PUBKEY=ssh-rsa ~
画像は途中までですが、なんとか行けました!
さて、ノードの設定に戻るか。
設定して、ログを見てみると以下のエラーが発生しました。
java.io.IOException: Java not found on hudson.slaves.SlaveComputer@4c731393. Install a Java 8 version on the Agent.
どうやらJava8のパスを設定しなければいけないらしい。
なので、以下のコマンドを実行しJavaのパスを確認。
docker exec -it slave01 bash
# ログイン後
which java
Javaのパスを確認できたので、それを今度はjenkinsで設定し直す。
jenkinsダッシュボードの左メニューから「jenkinsの管理」→「ノードの管理」→「新規ノード作成」
ここの設定は大体本の内容と一緒ですが、「認証設定」のみ、秘密鍵の「直接入力」しかできなくなっています。
なので、ここで秘密鍵をコピペして貼り付けて設定します。
以上の設定を行えば、ノードが設定されると思います!
まとめ
今回はDockerでjenkinsを試した際に詰まったところについて書いていきました。
Dockerやjenkinsが初めての人にとっては本通りに進まないと、手間取ってしまいますよね。(私もその一人ですwww)
「jenkins」に関するさらなる理解が必要そうです。
最後に今回勉強に利用した本のURLを貼っておきます。
それでは、今回はここで筆を置かせていただきます!
最後まで記事をご覧いただきありがとうございました!