Pular para o conteúdo

Chainguard Images

Imagens de contêiner mínimas com zero CVE construídas no Wolfi Linux para cadeias de suprimento de software seguras.

ComandoDescrição
docker pull cgr.dev/chainguard/static:latestBaixar imagem base estática mínima
docker pull cgr.dev/chainguard/busybox:latestBaixar imagem busybox para depuração
docker pull cgr.dev/chainguard/wolfi-base:latestBaixar imagem base Wolfi com shell
docker pull cgr.dev/chainguard/python:latestBaixar imagem runtime Python
docker pull cgr.dev/chainguard/node:latestBaixar imagem runtime Node.js
docker pull cgr.dev/chainguard/go:latestBaixar imagem de build Go
docker pull cgr.dev/chainguard/nginx:latestBaixar imagem do servidor web nginx
docker pull cgr.dev/chainguard/git:latestBaixar imagem git mínima
docker pull cgr.dev/chainguard/jdk:latestBaixar imagem Java JDK
docker pull cgr.dev/chainguard/rust:latestBaixar imagem de build Rust
docker pull cgr.dev/chainguard/redis:latestBaixar imagem do servidor Redis
docker pull cgr.dev/chainguard/postgres:latestBaixar imagem PostgreSQL
docker pull cgr.dev/chainguard/curl:latestBaixar imagem curl mínima
ComandoDescrição
tag :latestBuild mais recente, pronto para produção
tag :latest-devVariante de desenvolvimento com shell e gerenciador de pacotes
:latest em imagens -devInclui apk, shell e ferramentas de depuração
cgr.dev/chainguard-private/IMAGERegistro de imagens privado/empresarial
Fixação por digest @sha256:abc123...Fixar ao build exato da imagem para reprodutibilidade
ComandoDescrição
FROM cgr.dev/chainguard/static:latestUsar imagem estática no Dockerfile
FROM cgr.dev/chainguard/python:latest-devUsar variante dev com pip e shell
FROM cgr.dev/chainguard/node:latest AS buildUsar como estágio de build
FROM cgr.dev/chainguard/go:latest AS builderUsar imagem Go para compilação
docker run --rm cgr.dev/chainguard/wolfi-base shExecutar shell interativo
docker run --rm -p 8080:8080 cgr.dev/chainguard/nginxExecutar servidor nginx
docker run --rm cgr.dev/chainguard/python -- python -c "print('hello')"Executar one-liner Python
# Estágio de build
FROM cgr.dev/chainguard/go:latest AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /server ./cmd/server

# Estágio de runtime - distroless, sem shell, sem gerenciador de pacotes
FROM cgr.dev/chainguard/static:latest
COPY --from=builder /server /server
EXPOSE 8080
ENTRYPOINT ["/server"]
# Estágio de build com pip disponível
FROM cgr.dev/chainguard/python:latest-dev AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
COPY . .

# Estágio de runtime - Python mínimo, sem pip, sem shell
FROM cgr.dev/chainguard/python:latest
COPY --from=builder /install /usr/local
COPY --from=builder /app /app
WORKDIR /app
ENTRYPOINT ["python", "-m", "myapp"]
# Estágio de build
FROM cgr.dev/chainguard/node:latest-dev AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build

# Estágio de runtime
FROM cgr.dev/chainguard/node:latest
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
ENTRYPOINT ["node", "dist/index.js"]
# Estágio de build
FROM cgr.dev/chainguard/jdk:latest-dev AS builder
WORKDIR /app
COPY . .
RUN ./gradlew build --no-daemon -x test

# Estágio de runtime
FROM cgr.dev/chainguard/jre:latest
COPY --from=builder /app/build/libs/app.jar /app/app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
ComandoDescrição
chainctl auth loginAutenticar com Chainguard
chainctl auth login --headlessLogin em ambientes headless
chainctl auth configure-dockerConfigurar Docker para usar o registro Chainguard
chainctl images listListar imagens Chainguard disponíveis
chainctl images repos list --group=GROUP_IDListar repos de imagens de um grupo
chainctl images diff IMAGE1 IMAGE2Comparar duas versões de imagem
chainctl images history cgr.dev/chainguard/pythonMostrar histórico de versões da imagem
Navegar em images.chainguard.devCatálogo web de todas as imagens
ComandoDescrição
crane ls cgr.dev/chainguard/pythonListar tags disponíveis para uma imagem
crane manifest cgr.dev/chainguard/python:latestVisualizar manifesto da imagem
crane config cgr.dev/chainguard/python:latestVisualizar configuração da imagem
docker inspect cgr.dev/chainguard/python:latestInspecionar metadados da imagem
docker history cgr.dev/chainguard/python:latestVisualizar camadas da imagem
dive cgr.dev/chainguard/python:latestExplorar camadas da imagem interativamente
ComandoDescrição
cosign verify --certificate-oidc-issuer=https://token.actions.githubusercontent.com --certificate-identity-regexp='chainguard' cgr.dev/chainguard/pythonVerificar assinatura da imagem
cosign verify-attestation --type spdx cgr.dev/chainguard/pythonVerificar atestado SBOM
cosign verify-attestation --type vuln cgr.dev/chainguard/pythonVerificar atestado de vulnerabilidade
cosign tree cgr.dev/chainguard/pythonVisualizar artefatos da cadeia de suprimentos
cosign verify-attestation --type slsaprovenance cgr.dev/chainguard/pythonVerificar proveniência SLSA
# Verificar a assinatura de uma imagem Chainguard
cosign verify \
  --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
  --certificate-identity-regexp="chainguard" \
  cgr.dev/chainguard/python:latest

# Verificar atestado SBOM e exibi-lo
cosign verify-attestation \
  --type spdx \
  --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
  --certificate-identity-regexp="chainguard" \
  cgr.dev/chainguard/python:latest | jq -r '.payload' | base64 -d | jq .

# Verificar atestado de varredura de vulnerabilidade
cosign verify-attestation \
  --type vuln \
  --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
  --certificate-identity-regexp="chainguard" \
  cgr.dev/chainguard/python:latest
ComandoDescrição
grype cgr.dev/chainguard/pythonVarrer imagem para vulnerabilidades com Grype
grype cgr.dev/chainguard/python --only-fixedMostrar apenas vulnerabilidades corrigíveis
trivy image cgr.dev/chainguard/pythonVarrer com scanner Trivy
trivy image --severity HIGH,CRITICAL cgr.dev/chainguard/pythonVarrer apenas alta/crítica
docker scout cves cgr.dev/chainguard/pythonVarrer com Docker Scout
chainctl images vulns cgr.dev/chainguard/pythonVer vulnerabilidades conhecidas via chainctl
ComandoDescrição
apk updateAtualizar índice de pacotes (em imagens dev)
apk add curlInstalar um pacote
apk add --no-cache python3 py3-pipInstalar sem cache de índice
apk add --virtual .build-deps gcc musl-devInstalar dependências de build virtuais
apk del .build-depsRemover grupo de pacotes virtuais
apk del curlRemover um pacote
apk list --installedListar pacotes instalados
apk search nginxBuscar pacotes disponíveis
apk info python3Mostrar detalhes do pacote
apk info -L python3Listar arquivos de um pacote
ComandoDescrição
melange keygenGerar chaves de assinatura para pacotes
melange build recipe.yaml --signing-key melange.rsaConstruir pacote APK a partir de receita
melange build recipe.yaml --arch x86_64,aarch64Construir para múltiplas arquiteturas
melange bump recipe.yaml 1.2.3Incrementar versão na receita
package:
  name: myapp
  version: 1.0.0
  epoch: 0
  description: Aplicação personalizada
  copyright:
    - license: Apache-2.0

environment:
  contents:
    packages:
      - build-base
      - go
      - ca-certificates-bundle

pipeline:
  - uses: git-checkout
    with:
      repository: https://github.com/org/myapp
      tag: v${{package.version}}

  - uses: go/build
    with:
      packages: ./cmd/myapp
      output: myapp
      ldflags: -s -w

  - uses: strip
ComandoDescrição
apko build config.yaml tag output.tarConstruir imagem OCI a partir de config YAML
apko publish config.yaml tagConstruir e enviar imagem para registro
apko build config.yaml tag output.tar --arch x86_64,aarch64Construir imagem multi-arquitetura
docker load < output.tarCarregar imagem construída no Docker
contents:
  packages:
    - ca-certificates-bundle
    - wolfi-baselayout
    - myapp
  repositories:
    - https://packages.wolfi.dev/os
    - /path/to/local/packages

accounts:
  groups:
    - groupname: nonroot
      gid: 65532
  users:
    - username: nonroot
      uid: 65532
      gid: 65532
  run-as: 65532

entrypoint:
  command: /usr/bin/myapp

archs:
  - x86_64
  - aarch64

environment:
  APP_ENV: production
  PORT: "8080"
ComandoDescrição
cosign download sbom cgr.dev/chainguard/pythonBaixar SBOM da imagem
syft cgr.dev/chainguard/pythonGerar SBOM com Syft
syft cgr.dev/chainguard/python -o spdx-jsonGerar SBOM SPDX
syft cgr.dev/chainguard/python -o cyclonedx-jsonGerar SBOM CycloneDX
cosign download attestation cgr.dev/chainguard/pythonBaixar todos os atestados
cosign verify-attestation --type slsaprovenance cgr.dev/chainguard/pythonVerificar proveniência SLSA
chainctl images vulns cgr.dev/chainguard/pythonVer vulnerabilidades conhecidas
# Sigstore Policy Controller - exigir assinaturas Chainguard
apiVersion: policy.sigstore.dev/v1beta1
kind: ClusterImagePolicy
metadata:
  name: require-chainguard-signatures
spec:
  images:
    - glob: "cgr.dev/chainguard/**"
    - glob: "cgr.dev/chainguard-private/**"
  authorities:
    - keyless:
        url: https://fulcio.sigstore.dev
        identities:
          - issuerRegExp: ".*"
            subjectRegExp: ".*chainguard.*"
        ctlog:
          url: https://rekor.sigstore.dev
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-chainguard-images
spec:
  validationFailureAction: Enforce
  background: true
  rules:
    - name: check-image-registry
      match:
        any:
          - resources:
              kinds:
                - Pod
      validate:
        message: "Apenas imagens Chainguard de cgr.dev são permitidas."
        pattern:
          spec:
            containers:
              - image: "cgr.dev/chainguard/*"
            initContainers:
              - image: "cgr.dev/chainguard/*"
# GitHub Actions - verificar e varrer antes da implantação
name: Image Verification
on:
  push:
    branches: [main]

jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - name: Install cosign
        uses: sigstore/cosign-installer@v3

      - name: Verify image signature
        run: |
          cosign verify \
            --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
            --certificate-identity-regexp="chainguard" \
            cgr.dev/chainguard/python:latest

      - name: Scan for vulnerabilities
        uses: anchore/grype-action@v0
        with:
          image: cgr.dev/chainguard/python:latest
          fail-on: high
  1. Usar builds multi-estágio — construir em imagens -dev (que possuem compiladores e gerenciadores de pacotes) e copiar apenas o artefato final para a imagem runtime mínima.

  2. Fixar imagens por digest — usar digests @sha256:... em vez de tags para implantações em produção para garantir reprodutibilidade.

  3. Escolher a imagem base correta — usar static para binários compilados sem dependências de SO, wolfi-base quando precisar de shell, e imagens específicas de linguagem para linguagens interpretadas.

  4. Verificar assinaturas no CI/CD — sempre verificar assinaturas de imagens Chainguard com cosign antes de construir ou implantar.

  5. Varrer mesmo imagens zero-CVE — executar varreduras de vulnerabilidade como etapa de validação; imagens Chainguard devem retornar zero resultados, confirmando que seu pipeline está usando imagens genuínas.

  6. Usar variantes -dev apenas em estágios de build — nunca envie imagens -dev para produção; elas incluem ferramentas que aumentam a superfície de ataque.

  7. Executar como nonroot — imagens Chainguard usam por padrão o usuário nonroot; mantenha isso em seus Dockerfiles não alternando para root.

  8. Aplicar políticas de imagem — usar Kyverno, OPA Gatekeeper ou Sigstore Policy Controller para restringir registros de contêiner em seus clusters.

  9. Gerar e armazenar SBOMs — usar Syft ou cosign para baixar SBOMs para conformidade e trilhas de auditoria.

  10. Manter imagens atualizadas — Chainguard reconstrói imagens frequentemente; atualize seus digests regularmente para obter os patches de segurança mais recentes.