【问题标题】:How do I set System Path in my dockerfile for a Windows Container?如何在我的 dockerfile 中为 Windows 容器设置系统路径?
【发布时间】:2016-06-17 15:57:28
【问题描述】:

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

【问题讨论】:

    标签: windows powershell docker hyper-v


    【解决方案1】:

    【讨论】:

    • RUN powershell.exe -Command $path = $env:path + ';C:\java-1.8.0-openjdk-1.8.0.91-3.b14.windows.x86_64\bin'; Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $path 是魔法咒语。感谢您指出 golang dockerfile。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果是 windows 容器,您可以在 docker 文件中执行类似下面提到的示例的操作。请确保您的 Windows 映像在某个位置应该有任何这样的 jdk/jre 目录。

      对我来说,我一直在使用 windows server core:ltsc2019 (FROM mcr.microsoft.com/windows/servercore:ltsc2019),它是用一些 wildfly 定制的配置和jdk。但总而言之,setx 为我工作,将 java 直接设置到路径中。

      例子:

      RUN setx path "C:\jdk8u252-b09\bin"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-05
        • 2018-02-28
        相关资源
        最近更新 更多