{"meta":{"title":"컨테이너에서 CodeQL 코드 검사 실행","intro":"모든 프로세스가 동일한 컨테이너에서 실행되도록 하여 컨테이너에서 code scanning를 실행할 수 있습니다.","product":"보안 및 코드 품질","breadcrumbs":[{"href":"/ko/code-security","title":"보안 및 코드 품질"},{"href":"/ko/code-security/tutorials","title":"Tutorials"},{"href":"/ko/code-security/tutorials/customize-code-scanning","title":"코드 검색 사용자 지정"},{"href":"/ko/code-security/tutorials/customize-code-scanning/running-codeql-code-scanning-in-a-container","title":"컨테이너 내의 Code scanning"}],"documentType":"article"},"body":"# 컨테이너에서 CodeQL 코드 검사 실행\n\n모든 프로세스가 동일한 컨테이너에서 실행되도록 하여 컨테이너에서 code scanning를 실행할 수 있습니다.\n\n## 컨테이너화된 빌드를 사용하는 code scanning 정보\n\n컴파일된 언어에 대해 code scanning을 구성하고 컨테이너화된 환경에서 코드를 빌드하는 경우, “빌드 중 소스 코드가 확인되지 않았습니다”라는 오류 메시지가 뜨면서 분석이 실패할 수 있습니다. 이는 CodeQL이 컴파일될 때 코드를 모니터링할 수 없음을 나타냅니다.\n\n코드를 빌드하는 컨테이너 내에서 CodeQL을 실행해야 합니다. 이것은 CodeQL CLI 또는 GitHub Actions 중 어느 것을 사용하든지 적용합니다. CodeQL CLI에 대한 자세한 정보는 [사용자의 기존 CI 시스템으로 코드 검색 사용하기](/ko/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system)에서 확인할 수 있습니다. GitHub Actions를 사용하는 경우 동일한 컨테이너에서 모든 작업을 실행하도록 워크플로를 구성합니다. 자세한 내용은 [예제 워크플로](#example-workflow)에서 확인할 수 있습니다.\n\n> \\[!NOTE]\n> CodeQL CLI는 (musl 기반) Alpine Linux와 같은 비 glibc Linux 배포판과 현재 호환되지 않습니다.\n\n## CodeQL code scanning에 대한 종속성\n\n사용 중인 컨테이너에 특정 종속성이 누락된 경우 code scanning를 실행하는 데 어려움이 있을 수 있습니다(예: Git을 설치하고 PATH 변수에 추가해야 함). 종속성 문제가 발생하는 경우 일반적으로 GitHub의 실행기 이미지에 포함된 소프트웨어 목록을 검토합니다. 자세한 내용은 다음 위치에 있는 버전별 `readme` 파일을 참조하세요.\n\n* 리눅스: <https://github.com/actions/runner-images/tree/main/images/ubuntu>\n* Macos: <https://github.com/actions/runner-images/tree/main/images/macos>\n* Windows: <https://github.com/actions/runner-images/tree/main/images/windows>\n\n## 워크플로 예시\n\n이 샘플 워크플로는 GitHub Actions를 사용하여 컨테이너화된 환경에서 CodeQL 분석을 수행합니다.\n`container.image` 값은 사용할 컨테이너를 식별합니다. 이 예에서 이미지 이름은 `codeql-container`이고 태그는 `f0f91db`입니다. 자세한 내용은 [GitHub Actions에 대한 워크플로 구문](/ko/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontainer)을(를) 참조하세요.\n\n```yaml\nname: \"CodeQL\"\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n  schedule:\n    - cron: '15 5 * * 3'\n\njobs:\n  analyze:\n    name: Analyze\n    runs-on: ubuntu-latest\n    permissions:\n      security-events: write\n      actions: read\n\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [java-kotlin]\n\n    # Specify the container in which actions will run\n    container:\n      image: codeql-container:f0f91db\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Initialize CodeQL\n        uses: github/codeql-action/init@v4\n        with:\n          languages: ${{ matrix.language }}\n      - name: Build\n        run: |\n          ./configure\n          make\n      - name: Perform CodeQL Analysis\n        uses: github/codeql-action/analyze@v4\n```"}