我正在编写一个Dockerfile来使用Windows 10中新的本机docker支持为OpenJDK创建容器。这不是使用docker-toolbox。我想设置系统路径以包含java路径,但我无法弄清楚如何。我已尝试过以下文件的多种变体,但我无法正确设置路径。
FROM nanoserver:latest
RUN powershell -Command "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force;Set-PSRepository -Name PSGallery -InstallationPolicy Trusted;Install-Module PS7Zip;"
ADD https://github.com/ojdkbuild/ojdkbuild/releases/download/1.8.0.91-3/java-1.8.0-openjdk-1.8.0.91-3.b14.windows.x86_64.zip java.zip
RUN setx /M JRE_HOME C:\java-1.8.0-openjdk-1.8.0.91-3.b14.windows.x86_64\jre
RUN setx /M JAVA_HOME C:\java-1.8.0-openjdk-1.8.0.91-3.b14.windows.x86_64
RUN powershell -Command "Expand-7Zip java.zip"
RUN ["powershell", "$env:Path=$env:Path+\";C:\\java-1.8.0-openjdk-1.8.0.91-3.b14.windows.x86_64\\bin\""]
答案 0 :(得分:3)
看起来这个Golang示例有一个非常简单的方法:https://github.com/MicrosoftDocs/Virtualization-Documentation/blob/master/windows-container-samples/golang/Dockerfile#L24
答案 1 :(得分:1)
不幸的是,Powershell不允许使用该方法修改系统路径变量。 $env:Path
提供对系统路径的读访问权限,而不是写入权限。这意味着如果您更改$env:Path
,则只会影响您当前的PS环境。
有关更改系统路径变量的方法,请参阅此链接:http://codingbee.net/tutorials/powershell/powershell-make-a-permanent-change-to-the-path-environment-variable/