如何在我的dockerfile中为Windows容器设置系统路径?

时间:2016-06-17 15:57:29

标签: windows powershell docker hyper-v

我正在编写一个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\""]

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

不幸的是,Powershell不允许使用该方法修改系统路径变量。 $env:Path提供对系统路径的读访问权限,而不是写入权限。这意味着如果您更改$env:Path,则只会影响您当前的PS环境。

有关更改系统路径变量的方法,请参阅此链接:http://codingbee.net/tutorials/powershell/powershell-make-a-permanent-change-to-the-path-environment-variable/