2016-06-17 3 views
1

저는 Windows 10에서 새로운 기본 도커 지원을 사용하여 OpenJDK 용 컨테이너를 만들기 위해 Dockerfile을 작성하고 있습니다.이 도구는 docker-toolbox를 사용하지 않습니다. Java 경로를 포함하도록 시스템 경로를 설정하고 싶습니다. 그러나 어떻게 계산할 수 있습니까? 다음 파일의 여러 변형을 시도했지만 경로를 올바르게 설정할 수 없습니다.Windows 컨테이너의 도커 파일에서 시스템 경로를 어떻게 설정합니까?

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

'RUN의 powershell.exe를 -Command $ 경로를 = $ 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 \ 세션 관리자 \ 환경 \'- 이름 경로 -Value $ 경로'마법의 주문이었습니다. golang dockerfile을 지적 해 주셔서 감사합니다. –

1

불행히도 Powershell은 해당 방법을 사용하여 시스템 경로 변수를 수정할 수 없습니다. $env:Path은 쓰기가 아닌 시스템 경로에 대한 읽기 액세스 권한을 제공합니다. 즉, $env:Path을 변경하면 현재 PS 환경에만 영향을줍니다.

시스템 경로 변수를 변경할 수있는 방법이 링크를 참조하십시오 : http://codingbee.net/tutorials/powershell/powershell-make-a-permanent-change-to-the-path-environment-variable/이 Golang 샘플이 할 수있는 crufty 방법이 같은

관련 문제