images/README.md
Snider 91f8aac50f feat: add LinuxKit image builds using core CLI
Add LinuxKit configurations for developer and server-php images:
- developer/linuxkit.yml: Full dev environment with Docker-in-LinuxKit
- server-php/linuxkit.yml: Nginx + PHP-FPM production server

Update CI workflow to build LinuxKit images using `core build --type linuxkit`
instead of raw linuxkit CLI commands for consistency across the ecosystem.

Builds produce qcow2 and ISO formats for both amd64 and arm64 architectures.
Release artifacts are uploaded to GitHub Releases on version tags.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:23:22 +00:00

115 lines
2.7 KiB
Markdown

# core-images
Container images for the host-uk ecosystem. Each image produces multiple outputs:
- **Docker image** → `ghcr.io/host-uk/<name>`
- **LinuxKit image** → `<name>-<arch>.qcow2` / `<name>-<arch>.iso`
- **TIM bundle** → `<name>-<os>-<arch>.tim` (future)
## Images
| Image | Purpose | Docker | LinuxKit |
|-------|---------|--------|----------|
| `developer` | Full-fat dev environment (100+ tools) | `ghcr.io/host-uk/core-dev` | `core-dev-amd64.qcow2` |
| `server-php` | Alpine + Nginx + PHP-FPM | `ghcr.io/host-uk/server-php` | `server-php-amd64.qcow2` |
## Usage
### Docker
```bash
# Developer environment
docker run -it ghcr.io/host-uk/core-dev
# PHP server
docker run -p 80:80 ghcr.io/host-uk/server-php
```
### LinuxKit (via Core CLI)
```bash
# Build LinuxKit image
core build --type linuxkit --config developer/linuxkit.yml
# Run LinuxKit image
core run core-dev-amd64.qcow2
# Run with custom resources
core run core-dev-amd64.qcow2 --memory 4096 --cpus 4
```
### TIM (future, Docker-free)
```bash
# Install dev environment
core dev install
# Run directly
core run core-dev.tim
# Run PHP server
core run server-php.tim -p 80:80
```
## Building Locally
### Using Core CLI (recommended)
```bash
# Install core CLI
go install github.com/host-uk/core/cmd/core@latest
# Build LinuxKit images
core build --type linuxkit --config developer/linuxkit.yml --format qcow2-bios
core build --type linuxkit --config server-php/linuxkit.yml --format qcow2-bios
# Build Docker images
core build --type docker --config developer/Dockerfile
core build --type docker --config server-php/Dockerfile
```
### Using Task
```bash
# Requires: task (taskfile.dev)
# Build all
task build
# Build specific image
task build:developer
task build:server-php
```
## Structure
```
core-images/
├── developer/ # core-dev - Full dev environment
│ ├── Dockerfile # Docker build
│ ├── linuxkit.yml # LinuxKit build
│ ├── Borgfile # TIM build (future)
│ └── config/
├── server-php/ # server-php - Nginx + PHP-FPM
│ ├── Dockerfile
│ ├── linuxkit.yml
│ ├── Borgfile
│ └── config/
└── linuxkit/ # LinuxKit documentation
└── README.md
```
## CI/CD
The GitHub Actions workflow builds:
1. **Docker images** - Multi-arch (amd64, arm64) pushed to GHCR
2. **LinuxKit images** - qcow2 and ISO formats for both architectures
3. **Release artifacts** - LinuxKit images uploaded to GitHub Releases on tags
All builds use the `core` CLI for consistency.
## Sources
Consolidated from:
- [docker-developer](https://github.com/host-uk/docker-developer)
- [docker-server-php](https://github.com/host-uk/docker-server-php)