이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

컨테이너 내에서 .NET 디버깅

전제 조건

  1. .NET 디버거 연결 지원을 포함하는 .NET SDK를 설치하세요. .NET SDK 7 이상에서는 Dockerfile 없이 디버깅할 수 있는 옵션이 있습니다.

  2. VS Code에서 .NET 디버거에 연결하는 지원을 포함하는 Visual Studio Code C# 확장 프로그램을 설치하세요.

  3. macOS 사용자만 해당: Docker 환경 설정에 /usr/local/share/dotnet/sdk/NuGetFallbackFolder를 공유 폴더로 추가하세요.

    dockerSharedFolders

단계별 안내

  • 필요한 경우 dotnet new 명령어로 .NET 프로젝트를 생성하세요.
  • VS Code에서 프로젝트 폴더를 엽니다.
  • 선택적으로 중단점을 설정하세요.

.NET SDK vs. Dockerfile 빌드

컨테이너 내에서 앱을 빌드하고 디버깅하는 방법은 두 가지입니다. Dockerfile을 사용하거나, .NET 7 이상에서는 Dockerfile 없이 사용할 수 있습니다.

.NET SDK 컨테이너 빌드 (Dockerfile 없이 디버깅)

이 옵션은 웹 프로젝트를 지원하며, Docker가 Linux 컨테이너를 사용하도록 설정된 경우 사용할 수 있습니다.

  1. F5 키를 누르거나 실행 메뉴에서 디버깅 시작을 선택하세요. (launch.json에 기존 실행 프로필이 있다면 ⌘/ (Windows, Linux Ctrl+/) 키로 주석 처리할 수 있습니다.)
  2. 디버거 목록이 표시됩니다. 컨테이너: 컨테이너에서 디버그를 선택하세요.
  3. Dockerfile로 빌드할지(Dockerfile 사용) .NET SDK로 빌드할지(.NET SDK 사용) 묻는 옵션이 표시되면 .NET SDK 사용을 선택하세요.
  4. 작업 영역에 여러 프로젝트 파일이 있는 경우 디버깅하려는 프로젝트와 관련된 프로젝트 파일을 선택하세요. 빌드가 성공하면 .NET 앱이 컨테이너에서 실행되고 웹 앱이 브라우저에 열립니다.

참고: 지원되는 .NET SDK 버전: 이 기능은 기본적으로 .NET SDK 버전 7.0.300 이상에서 사용할 수 있습니다. 7.0.100에서 7.0.300 사이의 버전에서는 dotnet add package Microsoft.NET.Build.Containers를 사용하여 활성화하세요. .NET SDK 컨테이너 빌드에 대한 자세한 내용은 Microsoft Learn에서 확인할 수 있습니다.

Dockerfile로 디버깅

  1. 디버깅에 필요한 에셋을 추가할지 묻는 알림이 나타날 때까지 기다립니다. 를 선택하세요.

    csharpPrompt

  2. 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 열고 컨테이너: 작업 영역에 Docker 파일 추가...를 입력하세요. 이미 앱을 컨테이너화했다면 대신 컨테이너: 컨테이너 디버깅용 초기화를 사용할 수 있습니다. 프롬프트를 따르세요.

  3. 실행 및 디버그 보기(⇧⌘D (Windows, Linux Ctrl+Shift+D))로 전환하세요.

  4. 컨테이너: .NET 시작 실행 구성을 선택하세요.

  5. 디버깅을 시작하세요! (F5)

SSL 지원을 통한 실행 및 디버깅

SSL(HTTPS 프로토콜 사용)을 사용하려면 구성에 몇 가지 변경 사항을 적용해야 합니다.

  1. Dockerfile의 기본 섹션에 EXPOSE 줄을 추가하여 HTTPS/SSL에 대한 별도의 포트를 정의하세요. HTTP 요청에 대해서는 다른 포트와 별도의 EXPOSE 줄을 유지하세요.

    FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
    WORKDIR /app
    EXPOSE 5000
    EXPOSE 5001
    
  2. .vscode/tasks.json 파일에서 netCore 섹션에 configureSsl: true를 추가하세요. 또한 docker-run: debug 태스크의 dockerRun 섹션에 Dockerfile에 정의한 포트 번호와 동일한 포트 번호로 ASPNETCORE_URLS 환경 변수를 추가하세요.

    dockerRun: {
        "env": {
           "ASPNETCORE_URLS": "https://+:5001;http://+:5000"
       }
     }
     netCore: {
         "appProject": "${workspacefolder}/MyProject.csproj",
         "enableDebugging": true,
         "configureSsl": true
     }
    

추가 사용자 지정 옵션은 작업컨테이너화된 앱 디버그에 대한 문서를 참조하세요.

.NET SDK 컨테이너 빌드를 위한 프로젝트 파일 환경 설정 저장

여러 .NET 프로젝트 파일이 있는 작업 영역 폴더가 있고 특정 프로젝트만 디버깅하고 싶다면 (F5를 누를 때마다 프로젝트 파일 목록에서 선택해야 하는 경우), 다음 단계를 따라 실행 프로필을 저장할 수 있습니다.

  1. .NET SDK 컨테이너 빌드의 단계를 따르고 디버그 세션을 활성 상태로 유지하세요.

  2. 디버거 보기에서 기어 아이콘을 클릭하세요.

    dockerSharedFolders

  3. 컨테이너: 컨테이너에서 디버그를 선택하세요.

  4. 디버깅하려는 프로젝트와 관련된 프로젝트 파일을 선택하세요.

프로젝트 환경 설정이 저장되었으며, 더 이상 F5를 누를 때 프로젝트 파일을 선택할 필요가 없습니다.

© . This site is unofficial and not affiliated with Microsoft.