# 컨테이너에서 CodeQL 코드 검사 실행

모든 프로세스가 동일한 컨테이너에서 실행되도록 하면 컨테이너에서 code scanning를 실행할 수 있습니다.

## 컨테이너화된 빌드를 사용하는 code scanning 소개

컴파일된 언어를 구성 code scanning 하고 컨테이너화된 환경에서 코드를 빌드하는 경우 "빌드하는 동안 소스 코드가 표시되지 않았습니다."라는 오류 메시지와 함께 분석이 실패할 수 있습니다. 이는 코드가 컴파일되는 동안 CodeQL이(가) 코드를 모니터링할 수 없었음을 나타냅니다.

코드를 빌드하는 컨테이너 내에서 실행 CodeQL 해야 합니다. 이 값은 사용 CodeQL CLIGitHub Actions여부에 관계없이 적용됩니다.
CodeQL CLI자세한 내용은 [사용자의 기존 CI 시스템으로 코드 검색 사용하기](/ko/code-security/how-tos/find-and-fix-code-vulnerabilities/integrate-with-existing-tools/use-with-existing-ci-system)을 참조하세요. 사용하는 GitHub Actions경우 동일한 컨테이너에서 모든 작업을 실행하도록 워크플로를 구성합니다. 자세한 내용은 [예제 워크플로](#example-workflow)에서 확인할 수 있습니다.

> \[!NOTE]
> CodeQL CLI는 (musl 기반) Alpine Linux와 같은 비 glibc Linux 배포판과 현재 호환되지 않습니다.

## 에 대한 종속성 CodeQLcode scanning

사용 중인 컨테이너에 특정 종속성이 누락된 경우 실행 code scanning 이 어려울 수 있습니다(예: Git을 설치하고 PATH 변수에 추가해야 합니다). 종속성 문제가 발생하면 GitHub의 러너 이미지에 일반적으로 포함되는 소프트웨어 목록을 검토하세요. 자세한 내용은 다음 위치에 있는 버전별 `readme` 파일을 참조하세요.

* 리눅스: <https://github.com/actions/runner-images/tree/main/images/ubuntu>
* Macos: <https://github.com/actions/runner-images/tree/main/images/macos>
* Windows: <https://github.com/actions/runner-images/tree/main/images/windows>

## 예시 워크플로

이 샘플 워크플로는 컨테이너화된 환경에서 분석을 실행하는 GitHub Actions 데 사용합니다CodeQL.
`container.image` 값은 사용할 컨테이너를 식별합니다. 이 예에서 이미지 이름은 `codeql-container`이고 태그는 `f0f91db`입니다. 자세한 내용은 [GitHub Actions에 대한 워크플로 구문](/ko/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainer)을(를) 참조하세요.

```yaml
name: "CodeQL"

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: '15 5 * * 3'

jobs:
  analyze:
    name: Analyze
    runs-on: ubuntu-latest
    permissions:
      security-events: write
      actions: read

    strategy:
      fail-fast: false
      matrix:
        language: [java-kotlin]

    # Specify the container in which actions will run
    container:
      image: codeql-container:f0f91db

    steps:
      - name: Checkout repository
        uses: actions/checkout@v6
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v4
        with:
          languages: ${{ matrix.language }}
      - name: Build
        run: |
          ./configure
          make
      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v4
```