For the complete documentation index, see llms.txt. This page is also available as Markdown.

Containerized CI

Recipe — containerized CI evaluation with a minimal Dockerfile.

When to use: your CI runs in containers (Buildkite agents, GitLab Runners, Jenkins agents, GitHub Actions self-hosted, internal Kubernetes pipelines). Bake the SDK into the image so each PR run skips the install step.

Dockerfile

FROM python:3.11-slim

# Install the SDK from the LayerLens package index, plus minimal CI deps
RUN pip install --no-cache-dir \
 --extra-index-url https://sdk.layerlens.ai/package \
 layerlens==1.3.0 \
 httpx \
 tenacity

# Non-root user for safety
RUN useradd -m runner
USER runner
WORKDIR /work

# Copy the eval script(s)
COPY --chown=runner:runner scripts/ scripts/

ENTRYPOINT ["python", "scripts/ci-eval.py"]

Build and push

Use it from CI

GitHub Actions:

GitLab CI:

Buildkite:

Why containerize

  • No pip install on each run — saves 20-40s per PR.

  • Pinned SDK version baked into the image; reproducible.

  • Air-gapped CI — pre-pull the image into your private registry; runners don't reach sdk.layerlens.ai per build.

Pinning vs. floating

For production CI, pin to an exact SDK version (layerlens==1.3.0). For experimentation, you can float (layerlens>=1.3,<1.4). See Migrating SDK versions for upgrade guidance.

See also

Last updated

Was this helpful?