Dockerのslaveコンテナ起動エラー@Javaが見つからない

前回記事の続きです。

 

lawrence-twin.hateblo.jp

 

slaveコンテナを起動すると以下のエラーが表示されます。

 

■エラーログ

[04/21/20 12:21:50] [SSH] Checking java version of /home/jenkins/jdk/bin/java

Couldn't figure out the Java version of /home/jenkins/jdk/bin/java
bash: /home/jenkins/jdk/bin/java: No such file or directory
[04/21/20 12:21:50] [SSH] Checking java version of java

Couldn't figure out the Java version of java
bash: java: command not found
[04/21/20 12:21:50] [SSH] Checking java version of /usr/bin/java

Couldn't figure out the Java version of /usr/bin/java
bash: /usr/bin/java: No such file or directory
[04/21/20 12:21:50] [SSH] Checking java version of /usr/java/default/bin/java

Couldn't figure out the Java version of /usr/java/default/bin/java
bash: /usr/java/default/bin/java: No such file or directory
[04/21/20 12:21:50] [SSH] Checking java version of /usr/java/latest/bin/java

Couldn't figure out the Java version of /usr/java/latest/bin/java
bash: /usr/java/latest/bin/java: No such file or directory
[04/21/20 12:21:50] [SSH] Checking java version of /usr/local/bin/java

Couldn't figure out the Java version of /usr/local/bin/java
bash: /usr/local/bin/java: No such file or directory
[04/21/20 12:21:50] [SSH] Checking java version of /usr/local/java/bin/java

Couldn't figure out the Java version of /usr/local/java/bin/java
bash: /usr/local/java/bin/java: No such file or directory
java.io.IOException: Java not found on hudson.slaves.SlaveComputer@35e8e954. Install a Java 8 version on the Agent.

at hudson.plugins.sshslaves.JavaVersionChecker.resolveJava(JavaVersionChecker.java:82)

at hudson.plugins.sshslaves.SSHLauncher$1.call(SSHLauncher.java:452)

at hudson.plugins.sshslaves.SSHLauncher$1.call(SSHLauncher.java:422)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

[04/21/20 12:21:50] Launch failed - cleaning up connection

[04/21/20 12:21:50] [SSH] Connection closed.

 

■原因

Javaの参照先が間違っているそうです。

slaveコンテナ上で本来の参照先を確認してみます。

 

■コマンド

docker exec -it slave01 bash //slave01コンテナでbashを起動する(中に入る)

which java //javaの参照先を確認

f:id:lawrence-twin:20200421220234p:plain

 

参照先ディレクトリがエラーが出ているディレクトリと違いますね。

設定を変更してみます。

 

まずはslave01コンテナを選択します。

f:id:lawrence-twin:20200421220520p:plain

 

左のメニューから「Configure」を選択します。

f:id:lawrence-twin:20200421220553p:plain

 

Launch methodの右下にある「Advanced...」を選択します。

f:id:lawrence-twin:20200421220857p:plain

 

Java Pathの設定項目が表示されるので、先程whichコマンドで取得したjavaディレクトリを設定してsaveします。

f:id:lawrence-twin:20200421220953p:plain

 

起動を試してみると以下のログが、、、!!!

f:id:lawrence-twin:20200421221159p:plain

 

無事起動できることが確認できました!!!

長かった。。。

f:id:lawrence-twin:20200421221224p:plain