Windows Server 2016 TP4上的Docker通过PowerShell下载容器中的git

时间:2016-04-20 17:04:00

标签: windows git powershell azure docker

我有一个角度UI和一个nodejs api。我目前正在Azure中运行Windows Server 2016 TP4。这是我要经历的步骤:

  1. 我可以远程访问,创建图像,根据这些图像创建容器,并且没有任何问题附加到这些容器。
  2. 我从docker:docker pull microsoft/node中提取了一个nodejs图片,然后从该图片中创建了一个容器:docker run --name 'my_api_name' -it microsoft/node cmd
  3. 该命令通过Windows命令提示符将我带入容器。我输入powershell,它将我带入PowerShell shell,我可以运行npm命令。

    我的问题是,如何在这个容器上安装git?我想要访问存放我的应用程序的存储库,将其拉下并在此容器中运行它。我最终将这个容器映像推送到docker注册表,以便客户端可以将其拉下并在windows env上运行它。

4 个答案:

答案 0 :(得分:1)

你可以在admin shell中这样做:

iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
cinst -y git

答案 1 :(得分:1)

理想情况下,您不会将git添加到容器中并尝试将您的repo拉入其中(这也会使私有存储库的凭据变得混乱

您应该在主机上执行源代码管理,然后将源代码构建到容器中。它尚未出现在Windows Dockerfiles中,而是Linux ones have ONBUILD。应该可以为Windows复制它。

答案 2 :(得分:0)

RUN @powershell iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))   
RUN cinst -y git

引用:Unable to install git and python packages inside Windows container

答案 3 :(得分:0)

通过下载 Git 的“便携式”版本解决了这个问题。将这些文件复制到容器中,然后运行 ​​Git 提供的安装后脚本。

在此处找到合适的下载:static image

docker 文件内部:

添加 Git64/C:/Git/

工作目录 C:/Git/

运行 %windir%\System32\cmd.exe "/K" C:\Git\pos​​t-install.bat