# Executar a varredura de código CodeQL em um contêiner

Você pode executar code scanning em um contêiner garantindo que todos os processos sejam executados no mesmo contêiner.

## Sobre code scanning uma compilação conteinerizada

Se você estiver configurando code scanning para um idioma compilado e estiver criando o código em um ambiente em contêineres, a análise poderá falhar com a mensagem de erro "Nenhum código-fonte foi visto durante o build". Isso indica que CodeQL não foi possível monitorar seu código como ele foi compilado.

Você deve executar CodeQL dentro do contêiner no qual compila o seu código. Isso se aplica se você estiver usando o CodeQL CLI ou GitHub Actions. Para o(a) CodeQL CLI, consulte [Usando a varredura de código com seu sistema de CI existente](/pt/enterprise-server@3.19/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system) para obter mais informações. Se você estiver usando GitHub Actions, configure seu fluxo de trabalho para executar todas as ações no mesmo contêiner. Para obter mais informações, confira [Exemplo de fluxo de trabalho](#example-workflow).

> \[!NOTE]
> Atualmente, o CodeQL CLI não é compatível com distribuições Linux não glibc, como o Alpine Linux (baseado em musl).

## Dependências para CodeQLcode scanning

Talvez você tenha dificuldade para executar code scanning se o contêiner que você está usando estiver faltando determinadas dependências (por exemplo, o Git deve ser instalado e adicionado à variável PATH). Se você encontrar problemas de dependência, examine a lista de softwares normalmente incluídos nas GitHubimagens do executor. Para obter mais informações, confira os arquivos `readme` específicos da versão nestes locais:

* Linux: <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>

## Fluxo de trabalho de exemplo

> \[!NOTE]
> Este artigo descreve os recursos disponíveis na versão da ação do CodeQL e o pacote da CodeQL CLI associado incluído na versão inicial desta versão do GitHub Enterprise Server. Se sua empresa usa uma versão mais recente da ação CodeQL, confira a [versão GitHub Enterprise Cloud](/pt/enterprise-cloud@latest/code-security/tutorials/customize-code-scanning/run-in-a-container) deste artigo para obter informações sobre os recursos mais recentes.
> Para saber mais sobre como usar a versão mais recente, confira "[Configurando a verificação de código para seu dispositivo](/pt/enterprise-server@3.19/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance#configuring-codeql-analysis-on-a-server-without-internet-access)".

Este fluxo de trabalho de exemplo usa GitHub Actions para executar CodeQL a análise em um ambiente em contêineres. O valor de `container.image` identifica o contêiner a ser usado. Neste exemplo, a imagem é nomeada `codeql-container`, com uma tag de `f0f91db`. Para obter mais informações, consulte [Sintaxe de fluxo de trabalho para o GitHub Actions](/pt/enterprise-server@3.19/actions/using-workflows/workflow-syntax-for-github-actions#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
```