Files
datastore/tests/integration/compose/docker_compose_letsencrypt_pebble.yml
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

29 lines
1.1 KiB
YAML

services:
pebble:
# Mirror of ghcr.io/letsencrypt/pebble:2.9.0 (see compose/mirror-images.sh).
# Pulled via the dockerhub-proxy cache; ghcr.io is not behind the proxy.
image: clickhouse/letsencrypt-pebble:2.9.0
command: -config test/config/pebble-config.json -strict -dnsserver 10.5.11.3:8053
environment:
- PEBBLE_WFE_NONCEREJECT=0
ports:
- ${LE_PEBBLE_EXTERNAL_API_PORT:-14000}:${LE_PEBBLE_INTERNAL_API_PORT:-14000}
- ${LE_PEBBLE_EXTERNAL_MANAGEMENT_PORT:-15000}:${LE_PEBBLE_INTERNAL_MANAGEMENT_PORT:-15000}
stop_grace_period: 5s
networks:
default:
ipv4_address: 10.5.11.2
cpus: 3
challtestsrv:
# Mirror of ghcr.io/letsencrypt/pebble-challtestsrv:2.9.0 (see compose/mirror-images.sh).
# Pulled via the dockerhub-proxy cache; ghcr.io is not behind the proxy.
image: clickhouse/letsencrypt-pebble-challtestsrv:2.9.0
command: -defaultIPv6 "" -defaultIPv4 10.5.11.3
ports:
- ${LE_PEBBLE_CHALSRV_EXTERNAL_API_PORT:-8055}:${LE_PEBBLE_CHALSRV_INTERNAL_API_PORT:-8055}
stop_grace_period: 5s
networks:
default:
ipv4_address: 10.5.11.3
cpus: 3