Files
breadcrumb-the-shire/docker/php/Dockerfile
fs c34e62d729 harden: restore gate baseline, split dev/prod PHP profile, atomic module runtime build
Phase A — Gate Reliability:
- Fix typography token violations in app-breadcrumb.css
- Switch QG-006 from composer cs:check to direct php-cs-fixer
- Align all docs/skills with new gate command

Phase B — Production Profile:
- Multi-stage Dockerfile: dev (xdebug) / prod (no xdebug)
- Compose files target explicit build stages

Phase C — Module Runtime Hardening:
- Atomic staging+swap build in ModuleRuntimePageBuilder
- SHA-256 fingerprint from manifest content + page entries
- 11 new regression tests for build safety and fingerprint drift

Task: STARTERKIT-HARDENING-ONPREM-001

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:13:16 +01:00

38 lines
1.3 KiB
Docker

FROM php:8.5-fpm AS base
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
git \
unzip \
libzip-dev \
libmemcached-dev \
zlib1g-dev \
libssl-dev \
libjpeg-dev \
libpng-dev \
libwebp-dev \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
&& docker-php-ext-configure gd --with-jpeg --with-webp \
&& docker-php-ext-install pdo_mysql mysqli gd zip \
&& rm -rf /var/lib/apt/lists/*
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /var/www
# ── Development profile (default) ────────────────────────────────────
FROM base AS dev
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
COPY docker/php/php.ini /usr/local/etc/php/conf.d/zzz-minty-dev.ini
COPY docker/php/xdebug.ini /usr/local/etc/php/conf.d/zzz-xdebug.ini
# ── Production profile ───────────────────────────────────────────────
# No xdebug — smaller image, no debug overhead or attack surface.
FROM base AS prod
COPY docker/php/php.prod.ini /usr/local/etc/php/conf.d/zzz-minty-prod.ini