2017-02-07 106 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嗎? (我可以在類似的Linux容器上)

+0

您傳遞給Docker容器的環境變量僅對由docker可執行文件執行的進程可見。它們不會在整個機器上可見。但是,如果你確定,那麼爲什麼不在啓動期間讀取這個變量,而是在容器中追加一次PATH變量。環境變量的問題不可見系統範圍在這裏https://github.com/docker/docker/issues/30192 –

+0

@GSA,如果沒有解決方案,我會考慮這個答案。但我很驚訝,「爲我的容器環境附加PATH」並不是解決Windows容器的用戶故事。 – macetw

回答

3

您可以使用powershell腳本在容器中永久設置環境變量。

創建YOUT泊塢窗範圍內包含此PowerShell腳本(例如setpath.ps1):

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

添加這個腳本到您的容器dockerfile並運行該腳本。在dockerfile中添加如下代碼:

ADD ./setpath.ps1 c:/MyScripts/setpath.ps1 
RUN powershell -Command c:\MyScripts\setpath.ps1 
相關問題