# Integrar Docker Scout con CircleCI


Los siguientes ejemplos se ejecutan cuando se activan en CircleCI. Al activarse, descarga la imagen y etiqueta "docker/scout-demo-service:latest" y luego utiliza Docker Scout para crear un informe de CVEs.

Añade lo siguiente a un archivo _.circleci/config.yml_.

Primero, configura el resto del flujo de trabajo. Añade lo siguiente al archivo YAML:

```yaml
version: 2.1

jobs:
  build:
    docker:
      - image: cimg/base:stable
    environment:
      IMAGE_TAG: docker/scout-demo-service:latest
```

Esto define la imagen de contenedor que utiliza el flujo de trabajo y una variable de entorno para la imagen.

Añade lo siguiente al archivo YAML para definir los pasos del flujo de trabajo:

```yaml
steps:
  # Descargar los archivos del repositorio
  - checkout

  # Configurar un entorno de Docker separado para ejecutar comandos `docker`
  - setup_remote_docker:
      version: 20.10.24

  # Instalar Docker Scout e iniciar sesión en Docker Hub
  - run:
      name: Install Docker Scout
      command: |
        env
        curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /home/circleci/bin
        echo $DOCKER_HUB_PAT | docker login -u $DOCKER_HUB_USER --password-stdin

  # Construir la imagen de Docker
  - run:
      name: Build Docker image
      command: docker build -t $IMAGE_TAG .

  # Ejecutar Docker Scout
  - run:
      name: Scan image for CVEs
      command: |
        docker scout cves $IMAGE_TAG --exit-code --only-severity critical,high
```

Esto descarga los archivos del repositorio y luego configura un entorno de Docker separado para ejecutar comandos.

Instala Docker Scout, inicia sesión en Docker Hub, construye la imagen de Docker y luego ejecuta Docker Scout para generar un informe de CVEs. Únicamente muestra vulnerabilidades de gravedad crítica o alta.

Finalmente, añade un nombre para el flujo de trabajo y los trabajos del flujo de trabajo:

```yaml
workflows:
  build-docker-image:
    jobs:
      - build
```

