다음을 통해 공유


Visual Studio Code를 사용하여 빌드 및 디버그에 컨테이너 사용

Important

Azure Sphere(레거시) 설명서입니다. Azure Sphere(레거시)는 2027년 9월 27일에 사용 중지되며 사용자는 이 시간까지 Azure Sphere(통합)로 마이그레이션해야 합니다. TOC 위에 있는 버전 선택기를 사용하여 Azure Sphere(통합) 설명서를 볼 수 있습니다.

애플리케이션 개발에 Visual Studio Code를 사용하는 경우 컨테이너 내에서 빌드되도록 프로젝트를 설정할 수 있습니다. 그런 다음 컨테이너에서 직접 빌드하고 디버그할 수 있습니다. 이 항목에서는 .vscode 디렉터리가 존재하고 두 개의 파일이 launch.json settings.json 있도록 Visual Studio Code를 사용하여 프로젝트를 만들었다고 가정합니다.

이 항목에서는 컨테이너를 로컬로 사용하는 방법에 대해 설명합니다. 빌드 및 디버그 에 GitHub Codespaces를 사용하여 Azure Sphere 앱을 편집, 빌드, 배포 및 디버그하는 방법을 설명합니다.

.devcontainer 폴더 설정

프로젝트의 최상위 디렉터리에서 .devcontainer라는 폴더를 만듭니다. 이 폴더에서 다음 내용이 포함된 devcontainer.json 파일을 만듭니다.

{
    "name": "Azure Sphere Blink",
    "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],
    "build": {
    "dockerfile": "Dockerfile",
    "target": "dev"
    },

    // Use 'settings' to set *default* container specific settings.json values on container create.
    // You can edit these settings after create using File > Preferences > Settings > Remote.
    "settings": {
            "terminal.integrated.shell.linux": "/bin/bash"
    },

    // Use 'appPort' to create a container with published ports. If the port isn't working, be sure
    // your server accepts connections from all interfaces (0.0.0.0 or '*'), not just localhost.
    // "appPort": [],

    // Uncomment the next line to run commands after the container is created.
    // "postCreateCommand": "gcc -v",

    // Comment out the next line if you want to run as root instead
    "remoteUser": "vscode",

    // Add the IDs of extensions you want installed when the container is created in the array below.
    "extensions": [
    "ms-vscode.cpptools",
    "ms-vscode.azure-sphere-tools",
    "ms-vscode.azure-sphere-tools-ui"
    ]
}

다음으로, 다음 내용이 포함된 .devcontainer 폴더에 Dockerfile이라는 파일을 만듭니다.

FROM mcr.microsoft.com/azurespheresdk:latest AS dev

FROM dev AS build
COPY ./ /src/
WORKDIR /out
RUN cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE="/opt/azurespheresdk/CMakeFiles/AzureSphereToolchain.cmake" \
    -DAZURE_SPHERE_TARGET_API_SET="latest-lts" -DCMAKE_BUILD_TYPE="Release" "/src"
ENTRYPOINT [ "ninja" ]

초기 FROM 줄은 표준 Azure Sphere Docker 이미지를 기본 개발 컨테이너로 지정하고, 두 번째 줄은 기본 컨테이너를 빌드 환경으로 사용한다고 말합니다. 이 줄은 COPY 리포지토리의 내용을 컨테이너의 /src/디렉터리에 복사합니다. 빌드 WORKDIR 디렉터리를 지정합니다. 이 RUN 명령은 빌드 파일을 생성하는 CMake 명령을 제공합니다. 마지막으로, 애플리케이션을 ENTRYPOINT 실제로 빌드하기 위해 ninja를 호출하도록 지정합니다.

프로젝트 빌드 및 디버그

Visual Studio Code에서 프로젝트 폴더를 엽니다. Visual Studio Code는 새 파일을 검색하고 "폴더에 Dev Container 구성 파일이 포함되어 있습니다. 폴더로 다시 열어 컨테이너에서 개발합니다." 컨테이너에서 다시 열기 단추를 선택하여 .devcontainer/Dockerfile 파일에서 만든 컨테이너의 폴더를 다시 엽니다. Visual Studio Code의 제목 표시줄이 변경되어 컨테이너에서 편집 중임을 표시합니다. 왼쪽 탐색 모음에서 확장 탭을 열면 로컬에 설치된 확장과 컨테이너에 설치된 확장이 모두 표시됩니다.

F5 키를 눌러 프로젝트를 빌드하고 디버깅을 시작합니다. 애플리케이션은 평소와 같이 디바이스를 빌드하고 테스트용으로 로드합니다. 코드에서 중단점을 설정한 경우 중단점에 도달할 때까지 앱이 실행됩니다. 일반적인 디버깅 명령을 사용하여 코드를 연습할 수 있습니다. 자세한 내용은 Visual Studio Code 설명서의 디버깅 항목을 참조하세요.

디버깅을 마쳤으면 Shift+F5 또는 중지 아이콘을 누릅니다. 컨테이너를 닫려면 Visual Studio Code 도구 모음의 원격 메뉴에서 원격 연결 닫기 명령을 사용합니다.