{"meta":{"title":"Exécution de l’analyse du code CodeQL dans un conteneur","intro":"Vous pouvez exécuter code scanning dans un conteneur en veillant à ce que tous les processus s’exécutent dans le même conteneur.","product":"Sécurité et qualité du code","breadcrumbs":[{"href":"/fr/code-security","title":"Sécurité et qualité du code"},{"href":"/fr/code-security/tutorials","title":"Tutorials"},{"href":"/fr/code-security/tutorials/customize-code-scanning","title":"Personnaliser l’analyse du code"},{"href":"/fr/code-security/tutorials/customize-code-scanning/running-codeql-code-scanning-in-a-container","title":"Code scanning dans un conteneur"}],"documentType":"article"},"body":"# Exécution de l’analyse du code CodeQL dans un conteneur\n\nVous pouvez exécuter code scanning dans un conteneur en veillant à ce que tous les processus s’exécutent dans le même conteneur.\n\n## À propos de l’code scanning avec une build conteneurisée\n\nSi vous configurez l’code scanning pour un langage compilé et que vous générez le code dans un environnement conteneurisé, l’analyse peut échouer avec le message d’erreur « Aucun code source n’a été vu pendant la génération ». Cela indique que CodeQL n’a pas pu superviser votre code lors de sa compilation.\n\nVous devez exécuter CodeQL dans le conteneur dans lequel vous générez votre code. Cela s’applique que vous utilisiez CodeQL CLI ou GitHub Actions. Pour obtenir la CodeQL CLI, consultez [Utilisation de l’analyse du code avec votre système CI existant](/fr/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system) pour plus d’informations. Si vous utilisez GitHub Actions, configurez votre workflow pour exécuter toutes les actions dans le même conteneur. Pour plus d’informations, consultez [Exemple de workflow](#example-workflow).\n\n> \\[!NOTE]\n> CodeQL CLI n’est actuellement pas compatible avec les distributions Linux non-glibc comme Alpine Linux (basée sur musl).\n\n## Dépendances pour CodeQL code scanning\n\nVous pouvez avoir des difficultés à exécuter une code scanning si le conteneur que vous utilisez n’a pas certaines dépendances (par exemple, Git doit être installé et ajouté à la variable PATH). Si vous rencontrez des problèmes de dépendance, consultez la liste des logiciels généralement inclus dans les images d’exécuteur de GitHub. Pour plus d’informations, consultez les fichiers `readme` spécifiques à la version dans ces emplacements :\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* Windows : <https://github.com/actions/runner-images/tree/main/images/windows>\n\n## Exemple de flux de travail\n\nCet exemple de workflow utilise GitHub Actions pour exécuter l’analyse CodeQL dans un environnement conteneurisé. La valeur de `container.image` identifie le conteneur à utiliser. Dans cet exemple, l’image est nommée `codeql-container` et porte l’étiquette `f0f91db`. Pour plus d’informations, consultez « [Syntaxe de flux de travail pour GitHub Actions](/fr/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```"}