Jmeter is not working inside docker container Error:"Not able to find Java executable or version. Please check your Java installation."

Hi,

I’m trying to install java and jmeter inside docker on windows container.Please find the docker version below:

OS version - windows server 2016

PS C:\Users\Administrator> docker version
Client:
 Version:      17.03.1-ee-3
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   3fcee33
 Built:        Thu Mar 30 19:31:22 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.1-ee-3
 API version:  1.27 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   3fcee33
 Built:        Thu Mar 30 19:31:22 2017
 OS/Arch:      windows/amd64
 Experimental: false
PS C:\Users\Administrator>

Trying build the image using the below Dockerfile

FROM microsoft/windowsservercore
    # $ProgressPreference: https://github.com/PowerShell/PowerShell/issues/2138#issuecomment-251261324
    SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

    ENV JAVA_HOME C:\\ojdkbuild
    RUN $newPath = ('{0}\bin;{1}' -f $env:JAVA_HOME, $env:PATH); \
    	Write-Host ('Updating PATH: {0}' -f $newPath); \
    # Nano Server does not have "[Environment]::SetEnvironmentVariable()"
    	setx /M PATH $newPath;

    # https://github.com/ojdkbuild/ojdkbuild/releases
    ENV JAVA_VERSION 8u131
    ENV JAVA_OJDKBUILD_VERSION 1.8.0.131-1
    ENV JAVA_OJDKBUILD_ZIP java-1.8.0-openjdk-1.8.0.131-1.b11.ojdkbuild.windows.x86_64.zip
    ENV JAVA_OJDKBUILD_SHA256 7e7384636054001499ba96d55c90fc39cbb0441281254a1e9ac8510b527a7a46

    RUN $url = ('https://github.com/ojdkbuild/ojdkbuild/releases/download/{0}/{1}' -f $env:JAVA_OJDKBUILD_VERSION, $env:JAVA_OJDKBUILD_ZIP); \
    	Write-Host ('Downloading {0} ...' -f $url); \
    	Invoke-WebRequest -Uri $url -OutFile 'ojdkbuild.zip'; \
    	Write-Host ('Verifying sha256 ({0}) ...' -f $env:JAVA_OJDKBUILD_SHA256); \
    	if ((Get-FileHash ojdkbuild.zip -Algorithm sha256).Hash -ne $env:JAVA_OJDKBUILD_SHA256) { \
    		Write-Host 'FAILED!'; \
    		exit 1; \
    	}; \
    	\
    	Write-Host 'Expanding ...'; \
    	Expand-Archive ojdkbuild.zip -DestinationPath C:\; \
    	\
    	Write-Host 'Renaming ...'; \
    	Move-Item \
    		-Path ('C:\{0}' -f ($env:JAVA_OJDKBUILD_ZIP -Replace '.zip$', '')) \
    		-Destination $env:JAVA_HOME \
    	; \
    	\
    	Write-Host 'Verifying install ...'; \
    	Write-Host '  java -version'; java -version; \
    	Write-Host '  javac -version'; javac -version; \
    	\
    	Write-Host 'Removing ...'; \
    	Remove-Item ojdkbuild.zip -Force; \
    	\
    	Write-Host 'Complete.';

    #CMD ["java","-version"]


    # Install jmeter
    RUN   mkdir C:\jmeter

    RUN cd /jmeter
    RUN powershell.exe Invoke-WebRequest -usebasicparsing http://ftp.ps.pl/pub/apache/jmeter/binaries/apache-jmeter-3.1.zip -OutFile c:/apache-jmeter-3.1.zip
    RUN powershell.exe Expand-Archive -Path C:\apache-jmeter-3.1.zip -DestinationPath C:/jmeter
    #RUN mkdir C:/jmeter/apache-jmeter-2.13/apache-jmeter-3.1/jmeter-plugins
    #RUN cd C:/jmeter/apache-jmeter-2.13/apache-jmeter-3.1/jmeter-plugins
    #RUN Invoke-WebRequest -usebasicparsing  https://jmeter-#plugins.org/downloads/file/JMeterPlugins-ExtrasLibs-1.4.0.zip
    #RUN Expand-Archive -Path C:/jmeter/apache-jmeter-2.13/apache-jmeter-#3.1/jmeter-plugins -DestinationPath  C:/jmeter/apache-jmeter-2.13/apache-#jmeter-3.1/jmeter-plugins

    # Set Jmeter Home
    ENV JMETER_HOME C:/jmeter/apache-jmeter-3.1

    # Add Jmeter to the Path
    ENV PATH $JMETER_HOME/bin:$PATH

    COPY nature.jmx C:\\jmeter\\apache-jmeter-3.1\\bin\\nature.jmx

    WORKDIR C:\\jmeter\\apache-jmeter-3.1\\bin

    CMD ["jmeter","-version"]

i’m able to build the image successfully

PS C:\Users\Administrator> docker build --no-cache -t test01 C:\Users\Administrator\Desktop\Sinduja\Demo_JMX
Sending build context to Docker daemon 107.5 kB
Step 1/19 : FROM microsoft/windowsservercore
 ---> 015cd665fbdd
Step 2/19 : SHELL powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';
 ---> Running in 2da4aaefa87a
 ---> b36ea7fb6855
Removing intermediate container 2da4aaefa87a
Step 3/19 : ENV JAVA_HOME C:\\ojdkbuild
 ---> Running in f3bda273741f
 ---> 21bb29c02c1f
Removing intermediate container f3bda273741f
Step 4/19 : RUN $newPath = ('{0}\bin;{1}' -f $env:JAVA_HOME, $env:PATH);        Write-Host ('Updating PATH: {0}' -f $new
Path);  setx /M PATH $newPath;
 ---> Running in c1c30e956def
Updating PATH: C:\ojdkbuild\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPower
Shell\v1.0\;C:\Users\ContainerAdministrator\AppData\Local\Microsoft\WindowsApps

SUCCESS: Specified value was saved.
 ---> 1402e70cca4b
Removing intermediate container c1c30e956def
Step 5/19 : ENV JAVA_VERSION 8u131
 ---> Running in f38c494c2a16
 ---> 3c549b8e75e2
Removing intermediate container f38c494c2a16
Step 6/19 : ENV JAVA_OJDKBUILD_VERSION 1.8.0.131-1
 ---> Running in 959a73beb108
 ---> 96d88fe2f0f1
Removing intermediate container 959a73beb108
Step 7/19 : ENV JAVA_OJDKBUILD_ZIP java-1.8.0-openjdk-1.8.0.131-1.b11.ojdkbuild.windows.x86_64.zip
 ---> Running in 9e63d8fdb871
 ---> f48cf18980fc
Removing intermediate container 9e63d8fdb871
Step 8/19 : ENV JAVA_OJDKBUILD_SHA256 7e7384636054001499ba96d55c90fc39cbb0441281254a1e9ac8510b527a7a46
 ---> Running in d75022592855
 ---> f65dfd3743a3
Removing intermediate container d75022592855
Step 9/19 : RUN $url = ('https://github.com/ojdkbuild/ojdkbuild/releases/download/{0}/{1}' -f $env:JAVA_OJDKBUILD_VERSIO
N, $env:JAVA_OJDKBUILD_ZIP);    Write-Host ('Downloading {0} ...' -f $url);     Invoke-WebRequest -Uri $url -OutFile 'oj
dkbuild.zip';   Write-Host ('Verifying sha256 ({0}) ...' -f $env:JAVA_OJDKBUILD_SHA256);        if ((Get-FileHash ojdkbu
ild.zip -Algorithm sha256).Hash -ne $env:JAVA_OJDKBUILD_SHA256) {               Write-Host 'FAILED!';           exit 1;
};              Write-Host 'Expanding ...';     Expand-Archive ojdkbuild.zip -DestinationPath C:\;              Write-Ho
st 'Renaming ...';      Move-Item               -Path ('C:\{0}' -f ($env:JAVA_OJDKBUILD_ZIP -Replace '.zip$', ''))
        -Destination $env:JAVA_HOME     ;               Write-Host 'Verifying install ...';     Write-Host '  java -vers
ion'; java -version;    Write-Host '  javac -version'; javac -version;          Write-Host 'Removing ...';      Remove-I
tem ojdkbuild.zip -Force;               Write-Host 'Complete.';
 ---> Running in 425ae8b2be61
Downloading https://github.com/ojdkbuild/ojdkbuild/releases/download/1.8.0.131-1/java-1.8.0-openjdk-1.8.0.131-1.b11.ojdk
build.windows.x86_64.zip ...
Verifying sha256 (7e7384636054001499ba96d55c90fc39cbb0441281254a1e9ac8510b527a7a46) ...
Expanding ...
Renaming ...
Verifying install ...
 java -version
openjdk version "1.8.0_131-1-ojdkbuild"
OpenJDK Runtime Environment (build 1.8.0_131-1-ojdkbuild-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
 javac -version
javac 1.8.0_131-1-ojdkbuild
Removing ...
Complete.
 ---> c9ad3638ca1a
Removing intermediate container 425ae8b2be61
Step 10/19 : CMD java -version
 ---> Running in e0d71b172204
 ---> 4b594c7af37c
Removing intermediate container e0d71b172204
Step 11/19 : RUN mkdir C:\jmeter
 ---> Running in a34382221b44


    Directory: C:\


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        7/19/2017  10:04 AM                jmeter


 ---> 338bbdbe1782
Removing intermediate container a34382221b44
Step 12/19 : RUN cd /jmeter
 ---> Running in bae7324cd14c
 ---> f38cadb182d7
Removing intermediate container bae7324cd14c
Step 13/19 : RUN powershell.exe Invoke-WebRequest -usebasicparsing http://ftp.ps.pl/pub/apache/jmeter/binaries/apache-jm
eter-3.1.zip -OutFile c:/apache-jmeter-3.1.zip
 ---> Running in 3bbbfae4f24d
 ---> 56efaeae0e94
Removing intermediate container 3bbbfae4f24d
Step 14/19 : RUN powershell.exe Expand-Archive -Path C:\apache-jmeter-3.1.zip -DestinationPath C:/jmeter
 ---> Running in 3f0d17054e4c
 ---> 9e7d52adf8f6
Removing intermediate container 3f0d17054e4c
Step 15/19 : ENV JMETER_HOME C:/jmeter/apache-jmeter-3.1
 ---> Running in 62296b48bcb8
 ---> 34e152ccca30
Removing intermediate container 62296b48bcb8
Step 16/19 : ENV PATH $JMETER_HOME/bin:$PATH
 ---> Running in 82aa0f3bd3e9
 ---> fe5917369321
Removing intermediate container 82aa0f3bd3e9
Step 17/19 : COPY nature.jmx C:\\jmeter\\apache-jmeter-3.1\\bin\\nature.jmx
 ---> 4fd632ea1049
Removing intermediate container ed03cd96dd19
Step 18/19 : WORKDIR C:\\jmeter\\apache-jmeter-3.1\\bin
 ---> 8b2d7ba88faf
Removing intermediate container 01fe60ce9c0d
Step 19/19 : CMD jmeter -version
 ---> Running in 07a388c6861d
 ---> 7ae02d81adfd
Removing intermediate container 07a388c6861d
Successfully built 7ae02d81adfd
PS C:\Users\Administrator>

when i run i get shown the below error:

C:\jmeter\apache-jmeter-3.1\bin>jmeter
Not able to find Java executable or version. Please check your Java installation.
errorlevel=2
Press any key to continue . . .

java and jmeter path was set correctly.java installation is also successful. Unable to run java from commadline line it says java is not recognized as internal or external command.

it keeps giving the same error.Am i missing out on something. Any advise on this would be helpful