Dcokerで「jenkins」試してたら作業が進まなくなった話

この教材を使ってDockerについて学習していました。
しかし、この本通り進めていくと途中でハマってしまいました...
まじかよ!本通り進めてんのに進まないじゃん!
エラー内容としては、

  1. プラグインインストール画面でエラーが発生依存関係?の問題でインストールできていない)
  2. 新規ノードを作成しても接続できていない(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を貼っておきます。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Docker/Kubernetes実践コンテナ開発入門 [ 山田明憲 ]
価格:3718円(税込、送料無料) (2020/12/2時点)


それでは、今回はここで筆を置かせていただきます!
最後まで記事をご覧いただきありがとうございました!

■関連記事(精度そんな良くないかもwww)

■関連トピック

2023 - Izanagi's Site