0
SQL Server Command Line Utilities이 필요한 몇 가지 관리 작업을 수행하는 데 사용되는 Windows 도커 컨테이너를 만들고 있습니다. 내 목표는 MSI/chocolatey 설치 cruft가 최종 이미지에 포함되지 않도록 다단계 빌드를 사용하는 것입니다.다중 단계 Dockerfile 빌드가 프로그램 파일을 복사하지 못함 - 액세스가 거부되었습니다.
Step 8/10 : COPY --from=setup ["C:\\Program Files\\Microsoft SQL Server" "C:\\Program Files\\Microsoft SQL Server"]
failed to create hash for Documents and Settings: readlink \\?\Volume{b9e10f4e-aa64-4233-a798-28aa8ac73055}\Documents and Settings: Access is denied.
가이 방법으로 Program Files
에서 파일을 복사 할 수 있습니다 : 나는 docker build
을 실행하면이 오류를 얻을? 어떻게하면 이것을 작동시킬 수 있을까요?
# Setup container installs chocolatey and sqlserver CLI tools
FROM microsoft/windowsservercore:latest as setup
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN Invoke-WebRequest -OutFile chocoinstall.ps1 "https://chocolatey.org/install.ps1"
RUN . .\chocoinstall.ps1
RUN choco install 'sqlserver-cmdlineutils' -version '13.1' --yes
# Deploy Tools image
FROM microsoft/windowsservercore:latest
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# SQL server CLI tools
COPY --from=setup ["C:\\Program Files\\Microsoft SQL Server" "C:\\Program Files\\Microsoft SQL Server"]
RUN $env:PATH = 'C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\130\\Tools\\Binn\\;' + $env:PATH;
ENTRYPOINT ["powershell"]
감사합니다, @stefan (을 편집 .dockerignore 파일을 제거). 근본 원인이 내 COPY 문에서 누락 된','이었던 것 같아서 파일의 버전에서도 수정되었습니다. 이 작업을 수행 할 때'.dockerignore' 파일이 필요하지 않은 것으로 보입니다. 또한이 구문을 사용하여 PATH 환경 변수를 $ env로 설정해야했습니다. PATH는 영구적이지 않습니다. \ 클라이언트 SDK \ ODBC \ 130 \ Tools \ Binn \ ', [EnvironmentVariableTarget] :: Machine)'을 선택하십시오. 불행히도,이 모든 후 SQL 도구는 여전히 고장입니다. 누락 된 레지스트리 항목이나 뭔가가 있어야합니다. –
네, 맞습니다. 작업을하기 위해 여러 가지를 시도한 후에 COPY 명령에 ","를 추가하면 문제가 해결되는 것 같습니다. 그래서 나는 내 대답에 .dockerignore 파일을 제거했다. –