windows docker build期间的变量处理

时间:2018-01-16 13:18:25

标签: windows powershell docker dockerfile windows-container

如何在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。

viaArgviaEnv显示(a)值。

第一个示例here将多个命令放在一行中,如

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

但肯定必须有不同的方式。

唯一可能的方式是使用$env命名空间吗?

setx如何参与所有这些?

注意:我没有尝试传递variables from commandline,因此ARG可能已经以错误的方式使用了。而且我不想永久地set the variables,它们应该只在构建运行期间存在,所以我不需要它们in the registry

已使用的版本

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

0 个答案:

没有答案