command: docker scout watch short: | Watch repositories in a registry and push images and indexes to Docker Scout long: | The docker scout watch command watches repositories in a registry and pushes images or image indexes to Docker Scout. usage: docker scout watch pname: docker scout plink: docker_scout.yaml options: - option: all-images value_type: bool default_value: "false" description: | Push all images instead of only the ones pushed during the watch command is running deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: dry-run value_type: bool default_value: "false" description: Watch images and prepare them, but do not push them deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: interval value_type: int64 default_value: "60" description: Interval in seconds between checks deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: org value_type: string description: Namespace of the Docker organization to which image will be pushed deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: refresh-registry value_type: bool default_value: "false" description: | Refresh the list of repositories of a registry at every run. Only with --registry. deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: registry value_type: string description: Registry to watch deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: repository value_type: stringSlice default_value: '[]' description: Repository to watch deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: sbom value_type: bool default_value: "true" description: Create and upload SBOMs deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: tag value_type: stringSlice default_value: '[]' description: Regular expression to match tags to watch deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: workers value_type: int default_value: "3" description: Number of concurrent workers deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false inherited_options: - option: debug value_type: bool default_value: "false" description: Debug messages deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: verbose-debug value_type: bool default_value: "false" description: Verbose debug deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false examples: |- ### Watch for new images from two repositories and push them ```console $ docker scout watch --org my-org --repository registry-1.example.com/repo-1 --repository registry-2.example.com/repo-2 ``` ### Only push images with a specific tag ```console $ docker scout watch --org my-org --repository registry.example.com/my-service --tag latest ``` ### Watch all repositories of a registry ```console $ docker scout watch --org my-org --registry registry.example.com ``` ### Push all images and not just the new ones ```console $ docker scout watch --org my-org --repository registry.example.com/my-service --all-images ``` ### Configure Artifactory integration The following example creates a web hook endpoint for Artifactory to push new image events into: ```console $ export DOCKER_SCOUT_ARTIFACTORY_API_USER=user $ export DOCKER_SCOUT_ARTIFACTORY_API_PASSWORD=password $ export DOCKER_SCOUT_ARTIFACTORY_WEBHOOK_SECRET=foo $ docker scout watch --registry "type=artifactory,registry=example.jfrog.io,api=https://example.jfrog.io/artifactory,include=*/frontend*,exclude=*/dta/*,repository=docker-local,port=9000,subdomain-mode=true" --refresh-registry ``` This will launch an HTTP server on port `9000` that will receive all `component` web hook events, optionally validating the HMAC signature. ### Configure Harbor integration The following example creates a web hook endpoint for Harbor to push new image events into: ```console $ export DOCKER_SCOUT_HARBOR_API_USER=admin $ export DOCKER_SCOUT_HARBOR_API_PASSWORD=password $ export DOCKER_SCOUT_HARBOR_WEBHOOK_AUTH="token foo" $ docker scout watch --registry 'type=harbor,registry=demo.goharbor.io,api=https://demo.goharbor.io,include=*/foo/*,exclude=*/bar/*,port=9000' --refresh-registry ``` This will launch an HTTP server on port `9000` that will receive all `component` web hook events, optionally validating the HMAC signature. ### Configure Nexus integration The following example shows how to configure Sonartype Nexus integration: ```console $ export DOCKER_SCOUT_NEXUS_API_USER=admin $ export DOCKER_SCOUT_NEXUS_API_PASSWORD=admin124 $ docker scout watch --registry 'type=nexus,registry=localhost:8082,api=http://localhost:8081,include=*/foo/*,exclude=*/bar/*,"repository=docker-test1,docker-test2"' --refresh-registry ``` This ingests all images and tags in Nexus repositories called `docker-test1` and `docker-test2` that match the `*/foo/*` include and `*/bar/*` exclude glob pattern. You can also create a web hook endpoint for Nexus to push new image events into: ```console $ export DOCKER_SCOUT_NEXUS_API_USER=admin $ export DOCKER_SCOUT_NEXUS_API_PASSWORD=admin124 $ export DOCKER_SCOUT_NEXUS_WEBHOOK_SECRET=mysecret $ docker scout watch --registry 'type=nexus,registry=localhost:8082,api=http://localhost:8081,include=*/foo/*,exclude=*/bar/*,"repository=docker-test1,docker-test2",port=9000' --refresh-registry ``` This will launch an HTTP server on port `9000` that will receive all `component` web hook events, optionally validating the HMAC signature. ### Configure integration for other OCI registries The following example shows how to integrate an OCI registry that implements the `_catalog` endpoint: ```console $ docker scout watch --registry 'type=oci,registry=registry.example.com,include=*/scout-artifact-registry/*' ``` deprecated: false experimental: false experimentalcli: false kubernetes: false swarm: false