39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# 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/<image-name>/`** — 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/<image-name>` — 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/<image-name>/Dockerfile`
|
|
2. Add a `ci/<image-name>/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/<image-name>:latest ci/<image-name>/
|
|
```
|