2017-04-18 6 views
0

나는 windowsnanoserver을 기반으로하는 Dockerfile을 작성합니다. 이 이미지에 자식을 추가해야합니다. 나는 고정 표시기 구축을 통해이 줄을 실행할 때Windows 도커 파일을 통해 자식 설정

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 : \ 힘내-2.12을 달성하기 위해 나는 다음과 같은했다 .2.2-64-bit.exe '는 으로 cmdlet, 함수, 스크립트 파일 또는 작동 가능 프로그램의 이름으로 인식되지 않습니다. 이름 철자를 확인하거나 경로가 포함되어 있으면 경로가 인지 확인하고 다시 시도하십시오.

이 오류 메시지는 Windows 도커 이미지의 콘솔 특성으로 인해 GUI 설치 프로그램을 실행할 수 없음을 나타냅니다. 안타깝게도 git에는 콘솔 설치 프로그램이 없습니다. Chocolateywindowsservercore 이미지에서 제대로 작동하지만 windowsnanoserver에서 작동하지 않습니다. windowsnanoserver에 대한 자식을 설치하기 위해 나는 도커로 반복 명령을 내게는 chocolatey git installer에서 괜찮 았지만, 알고 싶습니다. 거기에 자식을 설치하는 더 간단한 방법이 있습니까 windowsnanoserver?

답변

0

. 다음 접근 방식을 사용했습니다 :

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가있는 나노 서버 이미지를 기반으로 컨테이너 이미지를 만들고 싶습니다.

Chocolatey는 좋은 아이디어입니다.

귀하의 목표에 대한보다 폭 넓은 맥락을 알려 주시면 더 멀리 할 수 ​​있도록 도와 드리겠습니다.

건배 :) 내가 MinGit의 사용을 통해 GUI와 환경/경로 변수에 mingit에 대한 정보를 넣어 문제를 해결 한