Awesome-claude-code create-dockerignore
Generates optimized .dockerignore files for PHP projects. Excludes tests, docs, IDE files, and development artifacts to minimize build context.
install
source · Clone the upstream repo
git clone https://github.com/dykyi-roman/awesome-claude-code
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/dykyi-roman/awesome-claude-code "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/create-dockerignore" ~/.claude/skills/dykyi-roman-awesome-claude-code-create-dockerignore && rm -rf "$T"
manifest:
skills/create-dockerignore/SKILL.mdsource content
.dockerignore Generator
Generates optimized
.dockerignore files for PHP projects, reducing build context size and improving build performance.
Generated Files
.dockerignore # Optimized exclusion rules
Generation Instructions
- Detect project type: Check for
(Symfony),symfony.lock
(Laravel), or generic PHPartisan - Analyze existing files: Read
, check CI/CD config, identify test/doc directories.gitignore - Generate .dockerignore: Universal exclusions + framework-specific + proper
negations!
Universal PHP .dockerignore
# =========================================== # .dockerignore — PHP Project # =========================================== # Version Control .git .gitignore .gitattributes .gitmodules # CI/CD .github .gitlab .gitlab-ci.yml .circleci Jenkinsfile bitbucket-pipelines.yml # IDE .idea .vscode *.sublime-project *.sublime-workspace *.swp *.swo *~ # Dependencies (installed in container) vendor/ node_modules/ # Testing tests/ test/ spec/ phpunit.xml phpunit.xml.dist .phpunit.result.cache .phpunit.cache/ behat.yml behat.yml.dist infection.json infection.json.dist # Documentation docs/ doc/ *.md !README.md LICENSE # Development Files docker-compose*.yml docker-compose*.yaml Dockerfile* .docker/ Makefile Vagrantfile # Cache and Temporary Files var/cache/ var/log/ storage/logs/ storage/framework/cache/ storage/framework/sessions/ storage/framework/views/ *.log tmp/ temp/ # Local Configuration .env .env.local .env.*.local .env.test *.local.php docker-compose.override.yml # Static Analysis phpstan.neon phpstan.neon.dist phpstan-baseline.neon psalm.xml psalm.xml.dist .php-cs-fixer.php .php-cs-fixer.dist.php .php-cs-fixer.cache .phpcs-cache phpcs.xml phpcs.xml.dist deptrac.yaml rector.php ecs.php pint.json # Build Artifacts coverage/ build/ report/ reports/ clover.xml coverage.xml # OS Files .DS_Store Thumbs.db # Package Management composer.phar auth.json # Claude / AI .claude/ CLAUDE.md
Symfony-Specific Additions
# Symfony symfony.lock var/ assets/ public/build/ .symfony/ .symfony.local.yaml .phpunit/
Laravel-Specific Additions
# Laravel storage/ bootstrap/cache/ docker-compose.sail.yml public/hot public/storage public/build/ public/mix-manifest.json _ide_helper*.php .phpstorm.meta.php Homestead.json Homestead.yaml
Important Negations
# Required Files (do NOT exclude) !composer.json !composer.lock !symfony.lock !.env.dist !.env.example
Build Context Impact
| Pattern | Typical savings |
|---|---|
| 50-500 MB |
| 100-500 MB |
| 200-800 MB |
| 5-50 MB |
Validation Rules
- Never exclude:
,composer.json
, source code (composer.lock
,src/
,app/
,config/
), migrationspublic/ - Always exclude:
,.git
, tests, IDE files, local env files with secretsvendor/ - Framework awareness: Symfony: exclude
, keepvar/
,config/
,public/
; Laravel: excludetemplates/
, keepstorage/
,config/
,public/resources/
Usage
Provide:
- Framework (Symfony/Laravel/generic PHP)
- Monorepo structure (yes/no)
- Custom exclusions (optional)
The generator will:
- Create
with universal exclusions.dockerignore - Add framework-specific exclusions
- Add proper negation rules for required files
- Optimize for minimal build context