Files
cameleer-saas/docker/runtime-loader/README.md
hsiegeln 966691f2c8
Some checks failed
CI / build (push) Successful in 3m7s
CI / docker (push) Failing after 7s
refactor: rebrand from net.siegeln to io.cameleer
Institutionalize the product identity ahead of public release:

- Java package: net.siegeln.cameleer.saas → io.cameleer.saas (109 files)
- Maven groupId: net.siegeln.cameleer → io.cameleer
- Public image defaults: gitea.siegeln.net/cameleer/ → registry.cameleer.io/cameleer/
- Updated docs (architecture, user-manual, HOWTO, runtime-loader README)
- Updated CLAUDE.md path references

Internal build infra (CI workflows, .gitmodules, npm registry, Maven repo)
intentionally kept at gitea.siegeln.net — code stays on internal Gitea.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 16:26:34 +02:00

1.3 KiB

cameleer-runtime-loader

Init container that fetches the deployable JAR into a shared volume before the main runtime container starts. The image is consumed by DockerRuntimeOrchestrator in the cameleer-server repo as a tenant sidecar — see that repo's .claude/rules/docker-orchestration.md ("Init-Container Loader Pattern") for the contract.

Build

CI (.gitea/workflows/ci.yml, docker job, "Build and push runtime-loader image" step) builds and pushes this image on every main / feature-branch push. Manual build for local testing:

docker build -t registry.cameleer.io/cameleer/cameleer-runtime-loader:<tag> .
docker push registry.cameleer.io/cameleer/cameleer-runtime-loader:<tag>

Contract (consumed by cameleer-server)

  • Env: ARTIFACT_URL (signed download URL), ARTIFACT_EXPECTED_SIZE (bytes).
  • Volume: writes /app/jars/app.jar.
  • Exit 0 on success; non-zero on fetch/size failure.
  • Runs as UID 1000 (loader user), drops all caps, read-only rootfs except /app/jars.

Contract regression coverage lives on the cameleer-server side (LoaderHardeningIT); pulls the published :latest and asserts exit 0 under the orchestrator's hardening shape. Don't change the env vars, mount path, or exit-code semantics without updating the cameleer-server side in the same change.