2017-12-27 36 views
2

여러 단계 (예 : 기본 및 빌드)가있는 도커 파일이있는 경우 Visual Studio에서 컨테이너를 디버깅 할 때 사용하는 도커 명령을 변경하는 방법이 있습니까? - 이후 단계를 호출하지 않고 도커 파일에서 첫 번째 빌드를 사용하는 것 같습니다. 이 프로젝트는 노드가 aspnetcore 빌드 이미지 설치할 필요가 있기 때문에 내가 F5 키를 쳤을 때Visual Studio 2017 Docker - 다단계 대상의 대상 변경

FROM microsoft/aspnetcore:2.0.3 AS base 
WORKDIR /app 
EXPOSE 80 

FROM microsoft/aspnetcore-build:2.0.3 AS build 
WORKDIR /src 
COPY *.sln ./ 
COPY Web/Web.csproj Web/ 
RUN dotnet restore 
COPY . . 
WORKDIR /src/Web 
RUN dotnet build -c Release -o /app 

FROM build AS publish 
#RUN npm install 
RUN dotnet publish -c Release -o /app 

FROM base AS final 
WORKDIR /app 
COPY --from=publish /app . 
# Set the entry point of the application. 
ENTRYPOINT ["dotnet", "Web.dll"] 

, 그것은 기본 이미지와 컨테이너를 만들고, 이후에 오류가 발생합니다 : 여기

내 고정 표시기 파일입니다 ; 기본 이미지를 aspnetcore-build로 변경하여이 문제를 해결할 수 있습니다.

그러나 시각적 스튜디오에서 프로젝트를 다단계 빌드라고 말하고 빌드를 사용해야한다고 말하는가?

나는 독사에게 매우 익숙하므로 아마도 뭔가 분명하지 않습니다.

+0

난 그냥 똑같은 문제를 가지고있다. 해결책을 찾았습니까? –

답변

0

VS 2017에서 다단계 Docker 파일을 사용하는 경우 디버그 및 릴리스 모드로 실행할 수 있습니다.

디버그 모드에서 VS는 "기본"타겟 및 태그 "DEV"로 도커 빌드를 설정하므로 도커가 이미 가리킨 것처럼 도커가 빈 이미지를 만듭니다.

그러면 VS가 이미지의 컨테이너를 시작하므로 곧 VS가 컨테이너의 현재 WORKDIR에 코드를 게시하고 애플리케이션을 시작한 다음 디버그에 연결합니다.

UPDATE

는 비누 거품 그 주에, 내가 VS는 OBJ의 \ 고정 표시기 폴더에서 고정 표시기-작성 파일을 생성하는 것을 발견, 그 DEV 모드에서 빌드 할 책임이있다.

0

나는 포기하고 그래서 같이 빌드를 aspnetcore하는 aspnetcore에서 기본 이미지를 변경 :

FROM microsoft/aspnetcore-build:2.0 AS base