3

後続のステートメントDockerfileでアクセスできるように、Windows イメージの変数を定義するにはどうすればよいですか?RUN

私のテストDockerfileは次のようになります

FROM microsoft/windowsservercore

SHELL ["powershell", "-Command"]

ARG viaArg=value
ENV viaEnv="""value"""
RUN $viaShell=\"value\"
RUN echo """viaArg: $env:viaArg"""
RUN echo """viaEnv: $env:viaEnv"""
RUN echo """viaShell: $myusername"""
RUN echo """viaShell+env: $env:viaShell"""

経由でイメージを構築するとき

PS > docker build -t myImage .

(a) 値のみviaArgを表示します。viaEnv

ここの最初の例では、次のように複数のコマンドを 1 行にまとめています。

RUN $someVar=\"2.60.3\" ; echo $someVar

しかし、確かに別の方法があるはずです。

名前空間を使用する$env唯一の方法ですか?

このすべてにどのようsetxに参加しますか?

注:コマンドラインから変数を渡そうとしているのではないため、ARGすでに間違った方法で使用されている可能性があります。そして、私は変数を永続的に設定したくありません。それらはビルド実行中にのみ存在する必要があるため、レジストリには必要ありません。

使用バージョンは

PS > docker -v
Docker version 17.12.0-ce, build c97c6d6
PS > [System.Environment]::OSVersion.Version    
Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      14393  0
PS > (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
1607
4

0 に答える 0