{"meta":{"title":"コンテナで CodeQL Code scanningを実行する","intro":"すべてのプロセスが同じコンテナで動作するようにすることで、code scanning を実行できます。","product":"セキュリティとコードの品質","breadcrumbs":[{"href":"/ja/code-security","title":"セキュリティとコードの品質"},{"href":"/ja/code-security/tutorials","title":"Tutorials"},{"href":"/ja/code-security/tutorials/customize-code-scanning","title":"コード スキャンをカスタマイズする"},{"href":"/ja/code-security/tutorials/customize-code-scanning/running-codeql-code-scanning-in-a-container","title":"コンテナーの Code scanning"}],"documentType":"article"},"body":"# コンテナで CodeQL Code scanningを実行する\n\nすべてのプロセスが同じコンテナで動作するようにすることで、code scanning を実行できます。\n\n## コンテナ化されたビルドで code scanning を使用することについて\n\nコンパイル言語用に code scanning を構成し、コンテナー化された環境でコードをビルドしようとすると、解析が失敗し、\"No source code was seen during the build.\" というエラー メッセージが表示される場合があります。 これは、コードがコンパイルされた際に CodeQL がコードを監視できなかったことを示しています。\n\nCodeQLは、コードをビルドするコンテナ内で実行しなければなりません。 これは、使用しているのが CodeQL CLI であれ GitHub Actions であれ同様です。 CodeQL CLI の詳細については、「[既存の CI システムでコード スキャンを使用する](/ja/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 は現在、glibc 以外の Linux ディストリビューション ((musl ベースの) Alpine Linux など) との互換性がありません。\n\n## CodeQL code scanning の依存関係\n\n使用しているコンテナで特定の依存関係がない場合 (たとえば、Git は PATH 変数にインストールされ、追加されている必要がある)、code scanning を実行する上で困難が生じる場合があります。 依存関係の問題が生じた場合は、GitHub のランナー イメージに通常含まれているソフトウェアのリストを確認してください。 詳しくは、次の場所にある特定のバージョンの `readme` ファイルをご覧ください。\n\n* Linux： <https://github.com/actions/runner-images/tree/main/images/ubuntu>\n* Macos： <https://github.com/actions/runner-images/tree/main/images/macos>\n* ウィンドウズ： <https://github.com/actions/runner-images/tree/main/images/windows>\n\n## ワークフローの例\n\nこのサンプルワークフローでは、GitHub Actions を使用して、コンテナ化された環境において CodeQL 解析を実行します。 使用するコンテナーを識別する `container.image` の値。 この例では、イメージは、`codeql-container` のタグを持つ、`f0f91db` という名前です。 詳しくは、「[GitHub Actions　のワークフロー構文](/ja/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```"}