2017-12-04 23 views
1

.NET Core 2.0 Visual Studio Team Services의 지속적인 통합/연속 전달 예제를 따르는 동안 VSTS의 복사 오류가 발생했습니다.VSTS CI/CD with docker 및 .NET Core 2.0 - 복사에 실패했습니다.

VS17을 통해 도커 지원을 추가하면 이와 같은 도커 파일을 사용하여 로컬로 훌륭하게 작동합니다.

FROM microsoft/aspnetcore:2.0 
ARG source 
WORKDIR /app 
EXPOSE 80 
COPY ${source:-obj/Docker/publish} . 
ENTRYPOINT ["dotnet", "myapp.dll"] 

MVC 앱과 WebAPI 앱을 사용하면 로컬에서 도커 작성 기능을 사용하여 잘 작동했습니다.

VSTS CI 빌드 프로세스를 추가하고 실행할 때 사본과 함께 오류가 발생했습니다.

건물의 MyApp 서비스 'MyApp를' 빌드에 실패 COPY 실패 : GetFileAttributesEx \ \ C : \ WINDOWS \는 임시 \ 고정 표시기 - builder91에게 \ OBJ \ 도커 \ 게시 다음 시스템을 찾을 수 없습니다 지정된 경로. C : \ 프로그램 파일 \ 도커 \ 고정 표시기 - compose.exe 리턴 코드로 실패했습니다 : 1

답변

1

내가 찾은 해결 방법은 리눅스 고정 표시기 시스템에서 오류를 명중 from this blog.

주이다

COPY 실패 : 합계는/var/lib 디렉토리/고정 표시기/tmp를/고정 표시기 - builder613328056/OBJ/도커/게시하지 않습니다 : 1

: 는/usr/빈/고정 표시기가 리턴 코드로 실패 그런 파일이나 디렉토리를

솔루션 :

그것은 또한 .dockerignore 파일을 수정해야합니다이

FROM microsoft/aspnetcore-build:2.0 AS build-env 
WORKDIR /app 

# Copy csproj and restore as distinct layers 
COPY *.csproj ./ 
RUN dotnet restore 

# Copy everything else and build 
COPY . ./ 
RUN dotnet publish -c Release -o out 

# Build runtime image 
FROM microsoft/aspnetcore:2.0 
WORKDIR /app 
COPY --from=build-env /app/out . 
ENTRYPOINT ["dotnet", "SiliconValve.Vsts.DockerDemo.dll"] 

같은 Dockerfile.ci을 확인합니다.

bin/ 
obj/ 
!*.dll 
!obj/Docker/publish/* 
!obj/Docker/empty/ 

이 그러나 나는이 문제에 쉽게 수정이의 가정, 나를 CI 프로세스를 계속 할 수 있습니다.

+0

빌드가 VSTS에서 발생하여 Docker 이미지로 파일을 복사하는 것이 훨씬 더 좋습니다. 그래도 할 수있는 방법을 찾지 못했습니다 ... –