LoginSignup
19
8

More than 3 years have passed since last update.

jenkinsのmaster/slave間のSSH接続でjavaがないと言われた時の対処法(docker)

Last updated at Posted at 2019-11-09

経緯

この書籍に沿ってjenkinsコンテナを立ち上げました。

Docker/Kubernetes 実践コンテナ開発入門(山田 明憲)

本の通りに進めているとエラーが出てしまったので、備忘録として書きます。

エラーの内容

masterコンテナを立ち上げる時のimageに書籍通りにjenkinsci/jenkis:2.142-slimを指定すると、
プラグインのインストールでエラーが出ました。それは下記の記事で対処法を記載くださっていたので解決しました。
dockerでjenkins構築(plugin install errorを出さない)

私の場合はslaveとSSH接続をさせる時に
下記エラーが出て、SSH接続が成功しませんでした。

java.io.IOException: Java not found on hudson.slaves.SlaveComputer@....... Install a Java 8 version on the Agent.
............
............
............
............

このエラーはjava8がありません、インストールしてくださいって言われているんですが、
そもそもjavaを探す場所が間違っていて起きていました。

解決法

まずdockerのslaveコンテナ内でjavaが格納されているディレクトリを調べる必要があります。
下記コマンドを実行します。

##コンテナの中のbashに入ります
$docker exec -it slave01 bash

##コンテナ内でjavaがどこに入っているか調べます
root@[CONTAINER ID]#which jave

上記を実行して出力されたディレクトリを
jenkins上のノード設定画面で指定します
スクリーンショット 2019-11-09 19.58.30.png

赤枠の「高度な設定」を押すと、javaのパスという項目が存在するので、そこに出力されたディレクトリを入力することで、エラーなくなります。
スクリーンショット 2019-11-09 19.47.11.png

コンテナ内の環境変数にはJAVA_HOMEは設定されてますが、ノード設定画面で指定しないとダメなようでした。

終わりに

docker起因というより、jenkins起因のエラーだったため、jenkins知ってたらもっと簡単だったなと思いました。
書籍はとっても分かりやすいので、改訂版を出して欲しい、、、

19
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
8