From acc
Analyzes Docker build errors for PHP projects, identifying extension compilation failures, missing dependencies, memory limits, large contexts, and providing fixes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/acc:analyze-docker-build-errorsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze Dockerfile and build logs for PHP project build failures and provide targeted fixes.
Analyze Dockerfile and build logs for PHP project build failures and provide targeted fixes.
| Error Category | Symptom | Root Cause |
|---|---|---|
| Extension compilation | configure: error: ... | Missing dev packages |
| Package not found | E: Unable to locate package | Wrong package name for base image |
| Permission denied | COPY failed: permission denied | File ownership or Docker socket |
| Memory exhausted | Allowed memory size exhausted | Composer or PHP memory limit |
| Context too large | sending build context... 2GB | Missing .dockerignore |
| Multi-stage failure | COPY --from=builder ... not found | Wrong stage name or path |
# ERROR: gd extension on Alpine
RUN docker-php-ext-install gd
# configure: error: png.h not found
# FIX (Alpine):
RUN apk add --no-cache libpng-dev libjpeg-turbo-dev freetype-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
# FIX (Debian):
RUN apt-get update && apt-get install -y libpng-dev libjpeg62-turbo-dev libfreetype6-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
| Extension | Alpine Packages | Debian Packages |
|---|---|---|
| gd | libpng-dev libjpeg-turbo-dev freetype-dev | libpng-dev libjpeg62-turbo-dev libfreetype6-dev |
| intl | icu-dev | libicu-dev |
| zip | libzip-dev | libzip-dev |
| pdo_pgsql | postgresql-dev | libpq-dev |
| soap | libxml2-dev | libxml2-dev |
| xsl | libxslt-dev | libxslt1-dev |
| imagick | imagemagick-dev (PECL) | libmagickwand-dev (PECL) |
# ERROR: Composer runs out of memory
RUN composer install
# PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
# FIX: Increase memory limit for Composer
RUN php -d memory_limit=-1 /usr/bin/composer install --no-dev --optimize-autoloader
# Required .dockerignore entries
.git
node_modules
vendor
var/cache
var/log
docker-compose*.yml
.env.local
tests
docs
RUN apk add --no-cache --virtual .build-deps \
$PHPIZE_DEPS build-base autoconf \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& apk del .build-deps
# Find Dockerfiles with extension installs
Grep: "docker-php-ext-install" --glob "**/Dockerfile*"
# Find missing dev package installs before ext-install
Grep: "ext-install.*(gd|intl|zip|pdo_pgsql|imagick)" --glob "**/Dockerfile*"
# Find unrestricted memory Composer runs
Grep: "composer install|composer update" --glob "**/Dockerfile*"
# Find large base images
Grep: "FROM php:[0-9.]+-apache|FROM php:[0-9.]+-cli$" --glob "**/Dockerfile*"
# Check for .dockerignore existence
Glob: "**/.dockerignore"
docker version outputDOCKER_BUILDKIT=1build-base for compilationRUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS <DEV_PACKAGES> \
&& docker-php-ext-configure <EXT> <OPTIONS> \
&& docker-php-ext-install -j$(nproc) <EXT> \
&& apk del .build-deps \
&& apk add --no-cache <RUNTIME_PACKAGES>
RUN apt-get update \
&& apt-get install -y --no-install-recommends <DEV_PACKAGES> \
&& docker-php-ext-configure <EXT> <OPTIONS> \
&& docker-php-ext-install -j$(nproc) <EXT> \
&& apt-get purge -y --auto-remove <DEV_ONLY_PACKAGES> \
&& rm -rf /var/lib/apt/lists/*
| Pattern | Severity | Impact |
|---|---|---|
| Extension compile failure | Critical | Build completely blocked |
| Memory exhausted | Critical | Build cannot complete |
| Package not found | Major | Build blocked, easy fix |
| Context too large | Major | Slow builds, wasted bandwidth |
| COPY path error | Minor | Build blocked, trivial fix |
### Build Error: [Category]
**Severity:** Critical/Major/Minor
**Stage:** `FROM ... AS <stage>`
**Line:** Dockerfile:line
**Error Message:**
<exact error from build log>
**Root Cause:**
[Explanation of why the build fails]
**Fix:**
```dockerfile
// Corrected Dockerfile instruction
Prevention: [How to avoid this error in future builds]
npx claudepluginhub dykyi-roman/awesome-claude-code --plugin accProvides solutions for common Docker build and runtime errors in PHP containers (e.g., OOM, permission denied, PHP-FPM crashes) plus diagnostic bash commands for logs, inspection, and stats.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.