{"meta":{"title":"Выполнение проверки кода CodeQL в контейнере","intro":"Вы можете запускаться code scanning в контейнере, обеспечив выполнение всех процессов в одном контейнере.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/tutorials","title":"Tutorials"},{"href":"/ru/code-security/tutorials/customize-code-scanning","title":"Настройка сканирования кода"},{"href":"/ru/code-security/tutorials/customize-code-scanning/run-in-a-container","title":"Запуск в контейнере"}],"documentType":"article"},"body":"# Выполнение проверки кода CodeQL в контейнере\n\nВы можете запускаться code scanning в контейнере, обеспечив выполнение всех процессов в одном контейнере.\n\n## О code scanning фильме с контейнерной сборкой\n\nЕсли вы настраиваете code scanning для скомпилированного языка и создаёте код в контейнерной среде, анализ может провалиться с сообщением об ошибке «Исходный код не виден во время сборки». Это указывает на то, что CodeQL не удалось отслеживать ваш код во время компиляции.\n\nВы должны запускаться CodeQL внутри контейнера, в котором строите свой код. Это относится независимо от того, используете ли вы или CodeQL CLIGitHub Actions. Для CodeQL CLI, см. [Использование сканирования кода с существующей системой CI](/ru/code-security/how-tos/find-and-fix-code-vulnerabilities/integrate-with-existing-tools/use-with-existing-ci-system) для дополнительной информации. Если вы используете GitHub Actions, настройте рабочий процесс так, чтобы все действия выполнялись в одном контейнере. Дополнительные сведения см. в разделе [\"Пример рабочего процесса](#example-workflow)\".\n\n> \\[!NOTE]\n> В настоящее время CodeQL CLI несовместим с дистрибутивами Linux не на основе glibc, такими как Alpine Linux (на основе musl).\n\n## Зависимости для CodeQLcode scanning\n\nМожет возникнуть трудности с запуском code scanning , если используемый вами контейнер отсутствует определённые зависимости (например, Git нужно установить и добавить в переменную PATH). Если вы столкнулись с проблемами зависимости, ознакомьтесь с программным обеспечением, которое обычно присутствует на GitHubизображениях runner's. Дополнительные сведения см. в файлах `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* Виндовс: <https://github.com/actions/runner-images/tree/main/images/windows>\n\n## Пример рабочего процесса\n\nЭтот примерный рабочий процесс используется GitHub Actions для анализа CodeQL в контейнерной среде. Значение `container.image` идентифицирует используемый контейнер. В этом примере изображение называется `codeql-container` и снабжено тегом `f0f91db`. Дополнительные сведения см. в разделе [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax#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```"}