# Ausführen der CodeQL-Codeüberprüfung in einem Container

Sie können code scanning in einem Container ausführen, indem Sie sicherstellen, dass alle Prozesse im selben Container ausgeführt werden.

## Info über code scanning mit einem Container-Build

Wenn Sie code scanning für eine kompilierte Sprache konfigurieren und den Code in einer containerbasierten Umgebung kompilieren, kann die Analyse mit der Fehlermeldung „Während des Builds wurde kein Quellcode erkannt.“ fehlschlagen. Dies weist darauf hin, dass CodeQL Ihren Code beim Kompilieren nicht überwachen konnte.

Sie müssen CodeQL innerhalb des Containers ausführen, in dem Sie Ihren Code erstellen. Dies gilt unabhängig davon, ob Sie CodeQL CLI oder GitHub Actions verwenden.
CodeQL CLIWeitere Informationen finden Sie unter [Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System](/de/enterprise-server@3.22/code-security/how-tos/find-and-fix-code-vulnerabilities/integrate-with-existing-tools/use-with-existing-ci-system). Wenn Sie den Workflow verwenden GitHub Actions, konfigurieren Sie ihren Workflow so, dass alle Aktionen im selben Container ausgeführt werden. Weitere Informationen findest du unter [Beispiel-Workflow](#example-workflow).

> \[!NOTE]
> Die CodeQL CLI ist derzeit nicht mit Nicht-Glibc-Linux-Distributionen wie (musl-basiertem) Alpine Linux kompatibel.

## Abhängigkeiten für CodeQLcode scanning

Möglicherweise haben Sie Schwierigkeiten beim Ausführen von code scanning, wenn dem von Ihnen verwendeten Container bestimmte Abhängigkeiten fehlen (z. B. muss Git installiert und der PATH-Variablen hinzugefügt worden sein). Wenn Abhängigkeitsprobleme auftreten, sehen Sie sich die Liste der Software an, die typischerweise in den Runner-Images von GitHub enthalten ist. Weitere Informationen findest du in den versionsspezifischen `readme`-Dateien an diesen Speicherorten:

* Linux: <https://github.com/actions/runner-images/tree/main/images/ubuntu>
* macOS: <https://github.com/actions/runner-images/tree/main/images/macos>
* Fenster: <https://github.com/actions/runner-images/tree/main/images/windows>

## Beispielworkflow

> \[!NOTE]
> In diesem Artikel werden die Funktionen beschrieben, die mit der Version der CodeQL Action und dem zugehörigen CodeQL CLI Bundle verfügbar sind, die in der Erstveröffentlichung dieser Version von GitHub Enterprise Server enthalten ist. Wenn Ihr Unternehmen eine neuere Version der CodeQL Aktion verwendet, finden Sie in der [GitHub Enterprise Cloud Version](/de/enterprise-cloud@latest/code-security/tutorials/customize-code-scanning/run-in-a-container) dieses Artikels Informationen zu den neuesten Features.
> Informationen zum Verwenden der aktuellen Version findest du unter [Konfigurieren der Code-Analyse für Ihr Gerät](/de/enterprise-server@3.22/code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access).

Dieser Beispiel-Workflow verwendet GitHub Actions, um die CodeQL-Analyse in einer containerisierten Umgebung auszuführen. Der Wert von `container.image` gibt den zu verwendenden Container an. In diesem Beispiel wird das Image `codeql-container` mit einem Tag von `f0f91db` genannt. Weitere Informationen findest du unter [Workflowsyntax für GitHub Actions](/de/enterprise-server@3.22/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
```