2017-04-18 54 views
0

我写的基于windowsnanoserver的Dockerfile。我需要添加到这个图像混帐。为了实现它,我做了以下内容:通过windows docker文件设置git

RUN Invoke-WebRequest 'https://github.com/git-for-windows/git/releases/download/v2.12.2.windows.2/Git-2.12.2.2-64-bit.exe' 
RUN Invoke-Expression "c:\Git-2.12.2.2-64-bit.exe" 

但是,当我执行通过码头工人建造这行,我收到以下错误消息:

调用-表达:术语“C:\ Git的-2.12 .2.2-64-bit.exe'不被识别为 cmdlet,函数,脚本文件或可操作程序的名称。检查 拼写的名称,或者如果包含路径,请验证路径是 正确,然后重试。

我意识到这个错误信息表明,由于Windows docker镜像的控制台性质,我将无法执行GUI安装程序。不幸的是,git没有控制台安装程序。 Chocolateywindowsservercore图片下正常工作,但不在windowsnanoserver上工作。为了安装git windowsnanoserver我有想法在chocolatey git installer的docker文件命令中重复,这对我来说很好,但是我仍然想知道是否有更简单的方法在windowsnanoserver上安装git?

回答

0

我已经解决了问题,通过MinGit的使用界面和通过把有关mingit信息到环境/路径变量。我用了以下方法:

RUN Invoke-WebRequest 'https://github.com/git-for-windows/git/releases/download/v2.12.2.windows.2/MinGit-2.12.2.2-64-bit.zip' -OutFile MinGit.zip 

RUN Expand-Archive c:\MinGit.zip -DestinationPath c:\MinGit; \ 
$env:PATH = $env:PATH + ';C:\MinGit\cmd\;C:\MinGit\cmd'; \ 
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name Path -Value $env:PATH 
0

你是对的,Windows和Linux容器一般都专注于运行无头应用程序(即没有GUI)。

听起来你想创建一个基于具有git的nanoserver图像的容器图像?

巧克力是一个好主意。

如果您给我更广泛的目标背景,我可以进一步帮助您。

干杯:)