Commit graph

15 commits

Author SHA1 Message Date
Snider
a7963928d1 updates
Some checks are pending
Build Images / Docker (developer) (push) Waiting to run
Build Images / Docker (server-php) (push) Waiting to run
Build Images / LinuxKit (developer-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (developer-arm64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-arm64) (push) Blocked by required conditions
Build Images / Release LinuxKit Images (push) Blocked by required conditions
2026-02-08 15:17:35 +00:00
Snider
861e5b00c4 fix(developer): pin Go tools to versions compatible with Go 1.24
gopls@latest requires Go 1.25, scc/v3@latest requires Go 1.25.2.
Pin to known-working versions for Alpine's Go 1.24.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 17:38:27 +00:00
Snider
a847c7bf5c fix(developer): allow pestphp/pest-plugin in composer
Composer blocks plugins by default for security. Need to explicitly
allow pest-plugin before running composer global require.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 17:27:25 +00:00
Snider
f7d1a2cce0 fix(developer): remove phpdocumentor (no PHP 8.4 support)
phpdocumentor/phpdocumentor doesn't support PHP 8.4 yet, causing
the composer global require to fail during image build.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 17:16:08 +00:00
Snider
9901887233 feat(ci): auto-cancel superseded builds
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 16:43:48 +00:00
Snider
62ac2e4dc6 feat(ci): add Docker Hub publishing for releases
- Dev branch: GHCR only (ghcr.io/host-uk/*)
- Main branch + tags: GHCR + Docker Hub (lthn/*)
- Requires DOCKERHUB_USERNAME and DOCKERHUB_TOKEN secrets

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 16:41:41 +00:00
Snider
d8f26497c2 fix(ci): correct GHCR image names and branch triggers
- Use separate image repos (ghcr.io/host-uk/core-dev, server-php)
- Trigger on dev branch instead of main
- Only build LinuxKit on tags
- Add fail-fast: false to continue if one image fails

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 16:34:16 +00:00
Snider
bd10a3f377 fix(server-php): add minimal product placeholder for base image
The Dockerfile requires product/ directory for the builder stage.
For the base image, this is a minimal placeholder that returns JSON.
Applications should mount their own code at /var/www/html.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:54:26 +00:00
Snider
7659c15787 fix(server-php): add empty patch directory for builder stage
The builder stage copies patch/ to allow overriding vendor files.
For the base image this is empty with a README explaining usage.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:53:15 +00:00
Snider
7c7edae110 fix: add missing server-php configs, fix developer git-delta
server-php:
- Add nginx.conf, fpm-pool.conf.template, supervisord.conf
- Add php.ini.template, php-prod.ini, php-dev.ini
- Add opcache-prod.ini, xdebug.ini
- Add nginx-performance.conf for production
- Add entrypoint.sh script

developer:
- Remove git-delta (not available in Alpine 3.22 repos)

Closes #3

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:51:48 +00:00
Snider
be8a20786f feat: dual-registry publishing (GHCR + Docker Hub)
Publishes container images to both registries:
- GHCR: ghcr.io/host-uk/core-images:{image} (org access)
- Docker Hub: lthn/{image}:{version} (public distribution)

Changes:
- Add Docker Hub login step (requires DOCKERHUB_USERNAME, DOCKERHUB_TOKEN secrets)
- Update metadata to generate tags for both registries
- Enable dev branch builds
- Fix LinuxKit build to use linuxkit directly (not core CLI)
- Use correct double-dash flags for linuxkit

Naming:
- developer -> ghcr.io/host-uk/core-images:developer + lthn/core-dev:latest
- server-php -> ghcr.io/host-uk/core-images:server-php + lthn/server-php:latest

Closes #1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:18:16 +00:00
Snider
10b3b69572 chore: add CodeRabbit configuration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 21:41:26 +00:00
Snider
69d293dd23 feat(developer): add full-fat dev environment with 100+ tools
Some checks are pending
Build Images / Docker (developer) (push) Waiting to run
Build Images / Docker (server-php) (push) Waiting to run
Build Images / LinuxKit (developer-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-amd64) (push) Blocked by required conditions
Build Images / LinuxKit (developer-arm64) (push) Blocked by required conditions
Build Images / LinuxKit (server-php-arm64) (push) Blocked by required conditions
Build Images / Release LinuxKit Images (push) Blocked by required conditions
Comprehensive developer image with all S4.6 tooling:

AI/LLM: claude, aider, llm
VCS: git, gh, lazygit, delta, git-lfs
Runtimes: node, bun, deno, go, python3, rustc, frankenphp
Package Mgrs: npm, pnpm, yarn, composer, pip, uv, cargo
Build: task, just, make, turbo, nx
Linting: pint, phpstan, prettier, eslint, biome, golangci-lint, ruff
Testing: phpunit, pest, vitest, k6
Infra: docker, kubectl, k9s, helm, terraform, ansible
Databases: sqlite, mysql, psql, redis-cli, usql
HTTP/Net: curl, httpie, xh, websocat, grpcurl, mkcert
Data: jq, yq, fx, gron, miller, dasel
Security: age, sops, cosign, trivy, trufflehog
Monitoring: htop, btop, ctop, lazydocker, dive
Files: fd, rg, fzf, bat, eza, tree, zoxide, broot
Editors: nvim, helix, vim, nano

Includes shell config (zsh + oh-my-zsh + starship), tmux, and
comprehensive aliases for all tools.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:31:24 +00:00
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
Snider
dafabd714c feat: initial core-images repository
Consolidated container image definitions for the host-uk ecosystem,
producing both Docker images and TIM bundles from a single source.

Images:
- developer: Full-fat dev environment with Claude Code CLI, PHP 8.4,
  Node.js, Go, Python, and 100+ tools (ghcr.io/host-uk/core-dev)
- server-php: Production Alpine + Nginx + PHP-FPM with multi-stage
  builds for dev/prod targets (ghcr.io/host-uk/server-php)

Includes:
- Taskfile for local builds (docker + tim)
- GitHub Actions workflow for multi-arch builds
- Borgfiles for future TIM bundle generation

Consolidates docker-developer and docker-server-php repositories.

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