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.aiper 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?