2017-04-13 1 views
14

도커를 만들 때 오류가 발생합니다.ASP.NET에서 도커 빌드 코어 : "해당 파일 또는 디렉토리가 없습니다."오류

Sending build context to Docker daemon 3.584 kB 
Step 1/8 : FROM microsoft/aspnetcore:1.1 
---> 2628aaa7b8cf 
Step 2/8 : ENV ASPNETCORE_URLS "http://*:5000" 
---> Using cache 
---> 5dffde204fef 
Step 3/8 : ENV ASPNETCORE_ENVIRONMENT "Development" 
---> Using cache 
---> 3064358bc0eb 
Step 4/8 : ARG source 
---> Using cache 
---> 4159d0eb78c0 
Step 5/8 : WORKDIR /app 
---> Using cache 
---> 61a394c84304 
Step 6/8 : EXPOSE 5000 
---> Using cache 
---> c7c2309f7085 
Step 7/8 : COPY ${source:-obj/Docker/publish} . 
lstat obj/Docker/publish: no such file or directory 

다음은 내 Dockerfile입니다.

FROM microsoft/aspnetcore:1.1 
ENV ASPNETCORE_URLS="http://*:5000" 
ENV ASPNETCORE_ENVIRONMENT="Development" 
ARG source 
WORKDIR /app 
EXPOSE 5000 
COPY ${source:-obj/Docker/publish} . 
ENTRYPOINT ["dotnet", "ProjectTestApi.dll" 

내가 명령을 실행 :

$ docker build -t my-docker-image-test . 

는 무엇이 잘못되었는지 어떤 IDE가 있습니까?

+0

내 솔루션을 사용해 보셨습니까? –

답변

26

해결책을 게시하지 않았기 때문에 상황이 발생했습니다.

기본적으로
no such file or directory 

, 당신은 추가 할 때 이, 그 중 하나는 docker-compose.ci.build.yml 지원 ASP.NET 코어 비주얼 스튜디오 2017 프로젝트, 그것은 docker-compose.yml 파일들을 생성 당신에입니다 도커 : 오류 메시지는 설명이 필요하다 빌드 프로세스를 처리합니다. 그런 다음 Visual Studio를 통해 프로젝트를 빌드하면 전체 docker-compose 파이프 라인이 실행됩니다.

docker-compose.ci.build.yml의 내용은, 이와 비슷한 있습니다 (이것은 분명히 사용자 지정 설정 및 프로젝트 이름에 따라 다름) :

version: '2' 

services: 
    ci-build: 
    image: microsoft/aspnetcore-build:1.0-1.1 
    volumes: 
     - .:/src 
    working_dir: /src 
    command: /bin/bash -c "dotnet restore ./SolutionName.sln && dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish" 

마지막 라인에서 볼 수 있듯이이 실제로 호출되는 dotnet publish 명령이 빌드 &은 프로젝트를 게시합니다.

그래서 문제에 대한 솔루션, 그냥 호출 고정 표시기하기 전에 프로젝트를 빌드 할 것이다 :이 옵션을 사용하면

dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish 
docker build -t my-docker-image-test . 
+0

나는 똑같은 문제가있다. 이 두 줄을 어디에 추가해야합니까? 내 프로젝트의 Dockerfile에? – GSPdibbler

+1

@GSPdibbler 이것은 명령 줄 명령이므로 docker CLI를 실행할 때와 동일한 위치에 있습니다. 아마도 박쥐 파일 일 겁니다. –

2

비주얼 스튜디오 2017에서 "도커 지원 추가", VS는 한 무리를 생성 도커 작성 파일과 Dockerfiles. Marcin Zablocki가 언급했듯이이 중 하나는 docker-compose.ci.build.yml입니다.

Docker 철학을 유지하려면 도커 컨테이너를 사용하여 프로젝트를 게시 할 수 있습니다. 프로젝트를 게시하려면 다음 단계 걸릴 것 :

  1. git clone/pull 루트 디렉토리에 프로젝트 & CD는
  2. docker-compose up

와 함께 프로젝트를 시작

  • docker-compose -f docker-compose.ci.build.yml up
  • 으로 프로젝트를 게시 내가 가진 주 프로젝트의 Dockerfile에 문제가 발생하는 상황이 발생했습니다. 이는 FROM microsoft/aspnetcore:1.1에서 발생하며 FROM microsoft/aspnetcore:1.1.2 또는 프로젝트에 필요한 모든 버전으로 변경할 수 있습니다.

    관련 문제