Files
Max KainovandClaude Opus 4.8 7b03b477c3 Mirror integration-test images through Docker Hub and enforce it in style check
CI runners pull Docker Hub images through the `dockerhub-proxy` cache
(`registry:2` + nginx backed by S3). That proxy only fronts Docker Hub, so
images hosted on other registries (`mcr.microsoft.com`, `ghcr.io`) bypass it
and are pulled directly, exposing CI to those registries' anonymous rate
limits (e.g. `mcr.microsoft.com` returns HTTP 429 `toomanyrequests` under
load).

Re-host the integration-test images that were on foreign registries under the
`clickhouse/` Docker Hub namespace so the pulls route back through the proxy:

- `mcr.microsoft.com/azure-storage/azurite` -> `clickhouse/azure-storage-azurite`
- `ghcr.io/projectnessie/nessie` -> `clickhouse/projectnessie-nessie`
- `ghcr.io/ytsaurus/local` -> `clickhouse/ytsaurus-local`
- `ghcr.io/letsencrypt/pebble` -> `clickhouse/letsencrypt-pebble`
- `ghcr.io/letsencrypt/pebble-challtestsrv` -> `clickhouse/letsencrypt-pebble-challtestsrv`

`tests/integration/compose/mirror-images.sh` copies these multi-arch manifests
into the `clickhouse/` namespace and documents how to add or bump images.

Add a `compose_images_from_dockerhub` sub-check to the style check job that
scans `tests/integration/compose/*.yml` and fails if any `image:` references an
explicit non-Docker-Hub registry host, to prevent reintroducing off-proxy
images.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-25 15:44:46 +02:00

15 lines
514 B
YAML

services:
azurite1:
# Mirror of mcr.microsoft.com/azure-storage/azurite:3.35.0 (see compose/mirror-images.sh).
# Pulled via the dockerhub-proxy cache; mcr.microsoft.com is not behind the proxy and rate-limits CI.
image: clickhouse/azure-storage-azurite:3.35.0
ports:
- "${AZURITE_PORT}:${AZURITE_PORT}"
volumes:
- data1-1:/data1
command: azurite-blob --blobHost 0.0.0.0 --blobPort ${AZURITE_PORT} --debug /azurite_log
stop_grace_period: 5s
cpus: 3
volumes:
data1-1: