2017-02-07 6 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スクリプトを使用して、コンテナ内に永続的に環境変数を設定できます。

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

あなたのコンテナdockerfileにこのスクリプトを追加し、スクリプトを実行します。

はこれを含む(例えばsetpath.ps1)youtはドッキングウィンドウのコンテキストでPowerShellスクリプトを作成します。

ADD ./setpath.ps1 c:/MyScripts/setpath.ps1 
RUN powershell -Command c:\MyScripts\setpath.ps1 
関連する問題