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>
124 lines
3.2 KiB
YAML
124 lines
3.2 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
REGISTRY: ghcr.io/host-uk
|
|
VERSION:
|
|
sh: git describe --tags --always --dirty 2>/dev/null || echo "dev"
|
|
|
|
tasks:
|
|
default:
|
|
desc: List available tasks
|
|
cmds:
|
|
- task --list
|
|
|
|
# ============================================================
|
|
# Build All
|
|
# ============================================================
|
|
build:
|
|
desc: Build all images (Docker + TIM)
|
|
deps:
|
|
- build:developer
|
|
- build:server-php
|
|
|
|
build:docker:
|
|
desc: Build all Docker images
|
|
deps:
|
|
- build:developer:docker
|
|
- build:server-php:docker
|
|
|
|
build:tim:
|
|
desc: Build all TIM bundles
|
|
deps:
|
|
- build:developer:tim
|
|
- build:server-php:tim
|
|
|
|
# ============================================================
|
|
# Developer Image
|
|
# ============================================================
|
|
build:developer:
|
|
desc: Build developer image (Docker + TIM)
|
|
deps:
|
|
- build:developer:docker
|
|
- build:developer:tim
|
|
|
|
build:developer:docker:
|
|
desc: Build developer Docker image
|
|
dir: developer
|
|
cmds:
|
|
- |
|
|
docker build \
|
|
--tag {{.REGISTRY}}/core-dev:{{.VERSION}} \
|
|
--tag {{.REGISTRY}}/core-dev:latest \
|
|
--build-arg VERSION={{.VERSION}} \
|
|
.
|
|
|
|
build:developer:tim:
|
|
desc: Build developer TIM bundle
|
|
dir: developer
|
|
cmds:
|
|
- echo "TODO: core build --type tim -o ../dist/core-dev-{{OS}}-{{ARCH}}.tim"
|
|
|
|
push:developer:
|
|
desc: Push developer image to registry
|
|
cmds:
|
|
- docker push {{.REGISTRY}}/core-dev:{{.VERSION}}
|
|
- docker push {{.REGISTRY}}/core-dev:latest
|
|
|
|
# ============================================================
|
|
# Server PHP Image
|
|
# ============================================================
|
|
build:server-php:
|
|
desc: Build server-php image (Docker + TIM)
|
|
deps:
|
|
- build:server-php:docker
|
|
- build:server-php:tim
|
|
|
|
build:server-php:docker:
|
|
desc: Build server-php Docker image
|
|
dir: server-php
|
|
cmds:
|
|
- |
|
|
docker build \
|
|
--tag {{.REGISTRY}}/server-php:{{.VERSION}} \
|
|
--tag {{.REGISTRY}}/server-php:latest \
|
|
--build-arg VERSION={{.VERSION}} \
|
|
.
|
|
|
|
build:server-php:tim:
|
|
desc: Build server-php TIM bundle
|
|
dir: server-php
|
|
cmds:
|
|
- echo "TODO: core build --type tim -o ../dist/server-php-{{OS}}-{{ARCH}}.tim"
|
|
|
|
push:server-php:
|
|
desc: Push server-php image to registry
|
|
cmds:
|
|
- docker push {{.REGISTRY}}/server-php:{{.VERSION}}
|
|
- docker push {{.REGISTRY}}/server-php:latest
|
|
|
|
# ============================================================
|
|
# Release
|
|
# ============================================================
|
|
release:
|
|
desc: Build and push all images
|
|
cmds:
|
|
- task: build
|
|
- task: push:developer
|
|
- task: push:server-php
|
|
|
|
# ============================================================
|
|
# Utilities
|
|
# ============================================================
|
|
clean:
|
|
desc: Remove build artifacts
|
|
cmds:
|
|
- rm -rf dist/
|
|
- docker rmi {{.REGISTRY}}/core-dev:{{.VERSION}} || true
|
|
- docker rmi {{.REGISTRY}}/server-php:{{.VERSION}} || true
|
|
|
|
dist:
|
|
desc: Create dist directory
|
|
cmds:
|
|
- mkdir -p dist
|
|
status:
|
|
- test -d dist
|