Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Running CodeQL code scanning in a container

You can run code scanning in a container by ensuring that all processes run in the same container.

está disponível para todos os repositórios públicos no GitHub.com. Para usar code scanning em um repositório privado pertencente a uma organização, você precisa ter um licença do GitHub Advanced Security. Para obter mais informações, confira "About GitHub Advanced Security".

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

em um contêiner

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

Sobre code scanning com uma compilação de contêiner Se você estiver configurando a code scanning para uma linguagem compilada e estiver criando o código em um ambiente de contêiner, a análise pode falhar e apresentar a mensagem de erro "Nenhum código fonte foi visto durante a compilação." Isso indica que CodeQL não conseguiu monitorar seu código da forma como foi compilado. Você deve executar CodeQL dentro do contêiner no qual você constrói seu código. Isso será aplicado se você estiver usando o CodeQL CLI ou o GitHub Actions.

Para o CodeQL CLI, confira "Instalar o CodeQL CLI em seu sistema de CI" para obter mais informações.

Se 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".

Observação: Atualmente, o CodeQL CLI não é compatível com distribuições Linux não glibc, como o Alpine Linux (baseado em musl). Dependências

  • Você pode ter dificuldade para executar code scanning se o contêiner que você está usando estiver com certas dependências ausentes (por exemplo, o Git deve ser instalado e adicionado à variável PATH).
  • Se você encontrar problemas de dependência, revise a lista de software geralmente incluída nas imagens do executor de GitHub.
  • 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/linux

macOS - https://github.com/actions/runner-images/tree/main/images/macos

Windows: https://github.com/actions/runner-images/tree/main/images/win Fluxo de trabalho de exemplo Este fluxo de trabalho de amostra usa GitHub Actions para executar a análise de CodeQL em um ambiente de contêiner.

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]

    # Specify the container in which actions will run
    container:
      image: codeql-container:f0f91db

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
      - name: Initialize CodeQL
        uses: github/codeql-action/init@v2
        with:
          languages: ${{ matrix.language }}
      - name: Build
        run: |
          ./configure
          make
      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@v2