홈>
Visual Studio 15.8.8을 사용하여 .NET Core Project (2.1)로 새로운 솔루션을 시작했습니다. docker compose 파일을 시작 프로젝트로 설정하여 실행하고 디버깅 할 수 있습니다. 작동합니다!
논리적으로 간단한 명령 줄로 도커 이미지를 만들 수 있어야합니다. 그러나 csproj를 찾을 수 없다고 불평합니다. 이건 이상해. 파일이 존재하며 내가 말했듯이 Visual Studio에서 실행할 수 있습니다. 하나의 디렉토리와 dockerfile이있는 디렉토리에서 시도했습니다. 같은 문제입니다.
어떻게 해결할 수 있습니까? 내가 원하는 유일한 것은 단순히 이미지를 작성한 다음 docker 명령을 사용하여 이미지를 실행하는 것입니다.
도커 파일
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["TryNewDocker2/TryNewDocker2.csproj", "TryNewDocker2/"]
RUN dotnet restore "TryNewDocker2/TryNewDocker2.csproj"
COPY . .
WORKDIR "/src/TryNewDocker2"
RUN dotnet build "TryNewDocker2.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "TryNewDocker2.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "TryNewDocker2.dll"]
작성 파일은 다음과 같습니다.
version: '3.4'
services:
trynewdocker2:
image: ${DOCKER_REGISTRY}trynewdocker2
build:
context: .
dockerfile: TryNewDocker2/Dockerfile
논리적으로이 문제를 해결할 때 "docker-compose up"이 계속 작동하기를 원합니다.
- 답변 # 1
관련 자료
- Ubuntu 2004에서 sudo가없는 Docker?
- html - 부트 스트랩을 사용하여 수평 스크롤바없이 인쇄하는 방법은 무엇입니까?
- reactjs - 이벤트를 사용하지 않고 구성 요소의 속성을 가져 오는 방법
- vb6 - 다른 프로그램이 "DBF"파일의 데이터를 관리 할 수 있도록 Visual Foxpro를 사용하여 DLL을 빌드해야합니다
- java - putIfAbsent를 사용하지 않고 ConcurrentHashMap 스레드 안전성
- python - 인덱스 및 슬라이싱을 사용하지 않고 중첩 목록의 값에 액세스하는 방법은 무엇입니까?
- java - 각 클래스의 요소 수만 사용하여 대체하지 않고 샘플링하는 방법은 무엇입니까?
- Lua의 스크립트에 정의 된 함수를 사용하지 않고 함수를 실행하는 방법
- python - for 루프를 사용하지 않고 벡터화 된 구현
- bash - 스크립트 내에서 실행되는 Docker와 함께 시간 초과 사용
- javascript - 여백을 사용하지 않고 li 태그 사이에 공간을 만드는 방법은 무엇입니까?
- node.js - 미들웨어 기능없이 multer를 사용하여 S3에 업로드
- python - split 메서드를 사용하지 않고 문자열에서 가장 긴 단어를 찾는 방법
- python - 셀레늄을 사용하여 ID, 값 및 유형이없는 요소 (버튼)를 찾는 방법은 무엇입니까?
- spring boot - Java를 사용하여 Docker 컨테이너에서 파일을 읽는 방법
- c++ - 가상 기능을 재정의하지 않고 가상 기능을 사용하는 목적
- html - css 위치를 사용하지 않고 png 이미지 겹치기 - 상대
- c# - 클라이언트 컴퓨터에 MSMQ를 설치하지 않고 MSMQ 사용
- 파이썬에서 목록을 사용하지 않고 4 개의 숫자 중 가장 큰 숫자를 찾는 방법
- javascript - ajax Django를 사용하여 페이지를 새로 고치지 않고 테이블 새로 고침
이것은 dockerfile의 파일 경로에 대한 잘못된 루트 폴더로 인해 발생합니다.
Docker
에서 시작 루트 폴더는C:\Users\...\repos\TryNewDocker2
입니다. 하지만command
에서 실행하는 동안 그 뿌리 사료는C:\Users\...\repos\TryNewDocker2\TryNewDocker2
입니다 따라서TryNewDocker2.csproj
의 경로TryNewDocker2/TryNewDocker2.csproj
에서 변경되었습니다TryNewDocker2.csproj
로아래 dockerfile을 사용해보십시오 :
업데이트
Docker와 명령 모두에서 작업하려면 dockerfile을 변경하지 말고 아래 경로에서 dockerfile 경로를 지정하여 명령을 실행하십시오.