aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
98 lines (70 loc) • 2.1 kB
Markdown
# CI Builder Dockerfile: {project_name}
**Base Image**: {base_image}
**Purpose**: Self-contained CI builder for {project_name}
**Registry**: {registry_url}/{image_name}:{tag}
**Last Updated**: {date}
---
## Dockerfile
```dockerfile
# ci/Dockerfile.builder
# Self-contained CI builder for {project_name}
# All build dependencies are pinned in this image.
# No external repos are fetched at build time.
FROM {base_image} AS builder
LABEL maintainer="{maintainer}"
LABEL description="CI builder for {project_name}"
LABEL version="{builder_version}"
# System dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
{system_packages} \
&& rm -rf /var/lib/apt/lists/*
# Language toolchain
{toolchain_install_commands}
# Project dependencies (cached layer)
WORKDIR /workspace
COPY {dependency_files} ./
RUN {dependency_install_command}
# Default entrypoint for CI
ENTRYPOINT ["{entrypoint}"]
CMD ["{default_cmd}"]
```
---
## Build and Push
```bash
# Build the CI builder image
docker build -f ci/Dockerfile.builder -t {registry_url}/{image_name}:{tag} .
# Push to registry
docker push {registry_url}/{image_name}:{tag}
# Tag as latest (after verification)
docker tag {registry_url}/{image_name}:{tag} {registry_url}/{image_name}:latest
docker push {registry_url}/{image_name}:latest
```
---
## Usage in CI
```yaml
# In your workflow file
jobs:
build:
runs-on: {runner}
container:
image: {registry_url}/{image_name}:{tag}
steps:
- uses: actions/checkout@v4
- run: {build_command}
- run: {test_command}
```
---
## Update Procedure
1. Modify `ci/Dockerfile.builder`
2. Build and test locally: `docker build -f ci/Dockerfile.builder -t {image_name}:test .`
3. Run project tests inside the builder: `docker run --rm -v $(pwd):/workspace {image_name}:test {test_command}`
4. Push with new version tag
5. Update workflow to reference new tag
---
## Pinned Versions
| Dependency | Version | Pin Reason |
|-----------|---------|-----------|
| {dep_name} | {dep_version} | {reason} |
---
## Notes
{additional_notes}