reyemtech / sail
Docker files for running a basic Laravel application.
Installs: 346
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 514
Open Issues: 0
pkg:composer/reyemtech/sail
Requires
- php: ^8.0
- illuminate/console: ^9.52.16|^10.0|^11.0|^12.0
- illuminate/contracts: ^9.52.16|^10.0|^11.0|^12.0
- illuminate/support: ^9.52.16|^10.0|^11.0|^12.0
- mirazmac/dotenvwriter: ^0.6.0
- symfony/console: ^6.0|^7.0
- symfony/yaml: ^6.0|^7.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0|^9.0|^10.0
- phpstan/phpstan: ^2.0
Conflicts
- laravel/sail: *
README
Introduction
This fork of Laravel Sail adds:
- Helm chart generation (with scheduler vendor PVC support)
- Non-interactive
sail:buildflags (--use-previous,--bump, etc.) - Laravel Boost guideline for IDE/AI context
- Multi-stage Docker builds (bake) shared across PHP versions (8.x/8.5)
Quick start
composer require reyemtech/sail --dev
php artisan sail:install --php=8.4 # or 8.5
php artisan sail:publish
Multi-project support
This fork includes a sail-wrapper that automatically finds and runs the nearest project's Sail script. This allows you to use sail from any directory when working with multiple Sail projects on the same machine.
Automatic installation: The wrapper is automatically installed to ~/.local/bin/sail (or ~/bin if available) when you install or update the package via Composer.
Usage: Simply run sail from any directory, and it will automatically find and execute the nearest project's vendor/bin/sail:
cd /path/to/project-a sail up -d # Uses project-a's Sail cd /path/to/project-b sail artisan migrate # Uses project-b's Sail
Manual installation: If automatic installation fails, you can manually install:
cp vendor/reyemtech/sail/bin/sail-wrapper ~/.local/bin/sail chmod +x ~/.local/bin/sail
Note: Make sure ~/.local/bin (or ~/bin) is in your PATH. Add to your ~/.bashrc or ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"
Build with bake + Helm
php artisan sail:build \ --environments=production \ --architectures=linux/amd64,linux/arm64 \ --repository=ghcr.io \ --organization=acme \ --domains=app.example.com \ --build-version=1.2.3 \ --push \ --use-previous \ --bump=patch
Key flags:
--use-previous: reuse the last saved config without prompts--bump=patch|minor|major|no: bump version non-interactively--repository=none: local-only build (disables push)
Validation:
- Environments must be in
local, production - Architectures must be in the allowed list from the package
- Repository must be one of the known registries or
none
Helm chart notes
- Stubs live in
stubs/helm - Scheduler vendor PVC: enabled by default (
scheduler.vendorPvc.*), default size 5Gi, storage classsata - Resources & security defaults:
resourcesrequests/limits set invalues.stubsecurityContextdefaults to non-root, fsGroup 1000
- Probes: web gets readiness/liveness on
/up
Docker runtime
- PHP 8.x bake files reside in
runtimes/8.x - PHP 8.5 reuses the 8.x bake structure (
runtimes/8.5/docker-bake.hcltargets 8.x, PHP_VERSION=8.5) - Multi-stage targets: base, app, production (cli/fpm)
Rollback (Helm)
helm rollback <release> <revision> helm history <release>
Contributing / Security
- Issues: https://github.com/reyemtech/sail/issues
- Security: https://github.com/laravel/sail/security/policy
- License: MIT