lc-docker-check
Verify docker-compose.yml, Dockerfile, and .env are properly synchronized.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Verify docker-compose.yml, Dockerfile, and .env are properly synchronized.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Create a Larascraper scraper (v2 or v3) for a target website, chaining browser actions (click, type, wait, scroll), conditional flow (when/repeatUntil), captcha solving, and file/PDF downloads. Detects the installed major and generates the matching style.
Add or edit a Laracrate file collection in config/laracrate.php with the correct anatomy (disk, access, types, variants, previews, extract/embed, flags, per-model scoping).
Runtime-verified Laravel inspection using the Laravel Boost MCP server (Tinker, Database Query/Schema, Last Error) instead of static grep. Falls back to Docker/Tinker if Boost is not installed.
Scaffold spatie/laravel-permission setup - add the HasRoles trait to a model and generate a roles & permissions seeder.
Audit spatie/laravel-permission usage - permissions used in code but undefined, defined but unused, unprotected routes, guard mismatches, and cache pitfalls.
Extract business logic from a controller or Livewire component method into a Laractions Action class.
| name | lc:docker-check |
| description | Verify docker-compose.yml, Dockerfile, and .env are properly synchronized. |
| argument-hint | [analyze | fix | fix --dry-run] |
| user-invocable | true |
| allowed-tools | Read Grep Bash Edit Write Glob |
Verify that docker-compose.yml, Dockerfile, .env, and composer.json are properly synchronized. Detects mismatched service names, port conflicts, missing extensions, and configuration drift.
| Subcommand | Description |
|---|---|
| (no argument) | Analyze Docker configuration and report issues. Read-only. |
fix | Fix detected mismatches by syncing .env with docker-compose values. Asks for confirmation before each change. |
fix --dry-run | Show what .env changes would be made without modifying anything. |
Use Read to load:
docker-compose.yml (or docker-compose.yaml, compose.yml, compose.yaml)Dockerfile (and any variant like docker/*/Dockerfile, docker/Dockerfile).env.env.examplecomposer.json (for PHP version and extension requirements)If any file is missing, note it and continue with available files.
mysql, db, database3306:3306MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD.env:
DB_HOST should match the service name (e.g., mysql, not 127.0.0.1)DB_PORT should match the internal port (usually 3306)DB_DATABASE should match MYSQL_DATABASEDB_USERNAME should match MYSQL_USERDB_PASSWORD should match MYSQL_PASSWORDCommon issue: DB_HOST=127.0.0.1 when it should be the Docker service name (e.g., mysql).
.env:
REDIS_HOST should match the service name (e.g., redis)REDIS_PORT should match the internal port (usually 6379).env:
MAIL_HOST should match the service nameMAIL_PORT should match the internal portCACHE_DRIVER and QUEUE_CONNECTION in .env.redis, verify Redis service exists in docker-compose.database, no extra service needed.host_port:container_port.3306 (MySQL) -- conflicts with local MySQL5432 (PostgreSQL) -- conflicts with local PostgreSQL6379 (Redis) -- conflicts with local Redis80/443 (HTTP/S) -- conflicts with local web server8080 (common dev port) -- conflicts with other dev serversvolumes: section.FROM php:X.Y-fpm, FROM php:X.Y-cli, etc.).composer.json for the require.php constraint (e.g., "^8.2").composer.json for require entries starting with ext-:
"ext-gd": "*" -> requires gd extension"ext-redis": "*" -> requires redis extension"ext-intl": "*" -> requires intl extensiondocker-php-ext-install gd intl pdo_mysqlpecl install redisRUN apt-get install (for underlying libraries).env with keys in .env.example..env but missing from .env.example (may cause setup issues for new developers)..env.example but missing from .env (may indicate unused configuration).DOCKER CONFIGURATION CHECK
============================
ISSUES FOUND
--------------
1. DB_HOST mismatch
.env: DB_HOST=127.0.0.1
docker-compose: Database service name is 'mysql'
Fix: Change DB_HOST to 'mysql' in .env
Severity: Critical (app cannot connect to DB in Docker)
2. Port conflict
Service 'mysql' maps to host port 3306
Service 'testing-db' also maps to host port 3306
Fix: Change one service to a different host port (e.g., 3307:3306)
Severity: Critical (docker-compose will fail to start)
3. Missing PHP extension
composer.json requires: ext-redis
Dockerfile: redis extension not found
Fix: Add 'pecl install redis && docker-php-ext-enable redis' to Dockerfile
Severity: High (application will fail at runtime)
4. PHP version mismatch
Dockerfile: PHP {detected_version}
composer.json: "php": "{composer_constraint}"
Status: Compatible/Incompatible
5. Missing .env.example keys
Keys in .env but not in .env.example:
- GOOGLE_OAUTH_CLIENT_ID
- GOOGLE_OAUTH_CLIENT_SECRET
- MICROSOFT_OAUTH_CLIENT_ID
Severity: Low (documentation issue)
ALL CHECKS
-----------
[PASS] Database service exists and is properly configured
[FAIL] DB_HOST does not match service name
[PASS] Redis service exists and matches REDIS_HOST
[PASS] No port conflicts detected
[PASS] Volume paths are valid
[PASS] PHP version is compatible
[FAIL] Missing ext-redis in Dockerfile
[WARN] 3 .env keys missing from .env.example
SUMMARY
========
Checks performed: 8
Passed: 5
Failed: 2
Warnings: 1
In fix mode, apply corrections with confirmation:
DB_HOST, REDIS_HOST, MAIL_HOST to match docker-compose service names.DB_DATABASE, DB_USERNAME, DB_PASSWORD to match docker-compose environment variables.Not auto-fixed (manual intervention needed):
docker/{version}/Dockerfile for different PHP versions). Check all..env files may have platform-specific line endings. Handle both \n and \r\n..env, preserve the existing file format and ordering.