2017-02-07 2 views
0

Windows Docker 컨테이너 내의 PATH에 추가해야하며 많은 순열을 시도했습니다.Windows Docker 컨테이너의 PATH에 추가하기

ENV PATH=%PATH%;C:\\Foo\\bin 
ENV PATH=$PATH;C:\\Foo\\bin 
ENV PATH="%PATH%;C:\Foo\bin" 
ENV PATH="$PATH;C:\Foo\bin" 
RUN "set PATH=%PATH%;C:\Foo\bin" 

이들 중 아무 것도 작동하지 않습니다. 기존 PATH 변수를 평가하지 않습니다.

PATH에 추가 할 올바른 구문은 무엇입니까? Docker 내부의 PATH에 추가 할 수 있습니까? (필자는 비슷한 리눅스 컨테이너를 사용할 수있다)

+0

Docker 컨테이너에 전달하는 환경 변수는 docker 실행 파일로 실행되는 프로세스에만 표시됩니다. 그들은 기계 전체에 보이지 않을 것입니다. 하지만 당신이 그걸로 괜찮 으면, 왜 그냥 시작하는 동안이 변수를 읽고 PATH 변수를 한 번 컨테이너 안에 추가하십시오. 시스템 전체에 표시되지 않는 환경 변수 문제는 https://github.com/docker/docker/issues/30192 –

+0

@GSA입니다. 해결 방법이 없다면 그 대답도 고려해 볼 수 있습니다. 그러나 "컨테이너 환경에 PATH에 추가"가 Windows 컨테이너의 사용자 스토리가 아니라는 점에 놀랐습니다. – macetw

답변

3

powershell 스크립트를 사용하여 컨테이너에 환경 변수를 영구적으로 설정할 수있다.

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Foo\bin", [EnvironmentVariableTarget]::Machine) 

이 컨테이너 dockerfile에이 스크립트를 추가하고 스크립트를 실행

이를 포함 행해져 Yout 고정 표시기의 컨텍스트에서 PowerShell 스크립트를 (예를 들어, setpath.ps1)를 만듭니다. docker 파일에 다음과 같이 추가하십시오.

ADD ./setpath.ps1 c:/MyScripts/setpath.ps1 
RUN powershell -Command c:\MyScripts\setpath.ps1 
관련 문제