# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Purpose This repo holds CI Docker images for KollectAI infrastructure. Each subdirectory under `ci/` is a self-contained image with its own Dockerfile and README. ## Architecture - **`ci//`** — One directory per Docker image (e.g. `ci/java-builder/`). Each contains a Dockerfile and a README with build args and usage. - **`.gitea/workflows/build-and-push.yaml`** — Gitea Actions workflow that auto-detects which images changed and builds/pushes only those. On schedule or manual dispatch, it builds all images. ## Registries - **Harbor**: `kcr.kollect.biz/kollect-tools/` — production image store (project: `kollect-tools`) - Images are tagged three ways: `latest`, short commit SHA, and `YYYYMMDD` date ## CI Workflow The workflow triggers on: - Push to `main` affecting `ci/**` (builds only changed images) - Weekly schedule (Sunday 10:00 UTC = Monday 00:00 UTC+14) - Manual dispatch (builds all images) Required Gitea secrets: `HARBOR_USERNAME`, `HARBOR_PASSWORD` ## Adding a New Image 1. Create `ci//Dockerfile` 2. Add a `ci//README.md` documenting build args and usage 3. Push to `main` — the CI workflow auto-discovers it via `find ci -mindepth 1 -maxdepth 1 -type d` ## Building Locally ```bash docker build -t kcr.kollect.biz/kollect-tools/:latest ci// ```