images/server-php/Borgfile
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

44 lines
1.6 KiB
Text

# Borgfile for server-php TIM bundle
# This will be processed by: core build --borgfile -o server-php.tim
# Base from Alpine
FROM alpine:3.22
# ============================================================
# PHP Runtime (FrankenPHP or PHP-FPM)
# ============================================================
ADD https://github.com/dunglas/frankenphp/releases/latest/download/frankenphp-linux-${ARCH} /usr/local/bin/frankenphp
# Or traditional PHP-FPM setup
# ADD php${PHP_VERSION} /usr/bin/php
# ADD php${PHP_VERSION}-fpm /usr/sbin/php-fpm
# ============================================================
# Nginx (optional, FrankenPHP has Caddy built-in)
# ============================================================
# ADD nginx /usr/sbin/nginx
# ADD config/nginx/ /etc/nginx/
# ============================================================
# PHP Extensions
# ============================================================
# Common extensions bundled with FrankenPHP
# Additional extensions via PHP_EXTENSIONS env var
# ============================================================
# Configuration
# ============================================================
ADD config/php-fpm/ /etc/php/
ADD config/supervisor/ /etc/supervisor/
# ============================================================
# Application Skeleton
# ============================================================
ADD product/ /var/www/html/
# ============================================================
# OCI Config
# ============================================================
# Exposes: 80 (HTTP), 443 (HTTPS), 8080 (WebSocket/Reverb)
# User: www-data
# Entrypoint: frankenphp run --config /etc/caddy/Caddyfile