reyemtech/sail
Sail by Reyemtech is a lightweight Laravel package that wraps common Sail and Docker workflows in simple Artisan commands, helping teams standardize containerized PHP development with sensible defaults and minimal configuration.
This package is a container-based local runtime for Laravel (Sail-style): it wraps Docker Compose behind a CLI so the whole team runs the same PHP, database, cache, and queue versions without touching host PHP. v3.8.6 is a security-driven runtime release, so treat "upgrade" as "rebuild and redeploy," not "composer update and move on."
Minimal steps for a project already using it:
^3.8.6 and re-publish/refresh the compose file if it's published into the repo.sail down → docker compose build --no-cache → sail up -d.sail php -v and confirm the patch level is at or above the fixed release.sail artisan migrate --force (or your normal migrate) and sail test before telling anyone the upgrade is done.Where to look first: the published compose file (base images, PHP tag, Alpine version), the .env knobs that select runtime and ports, and the CLI wrapper's command list. Then read the v3.8.6 changelog entry itself — the "builds intentionally fail" clause is the single most important sentence in it.
First real use case: on an existing app, the upgrade. On a new app, booting the stack and immediately running the test suite in-container so you're validating against the shipped runtime rather than whatever PHP is on the developer's laptop.
sail artisan, sail composer, sail npm, sail test. Host-level php/composer calls silently validate against the wrong runtime and defeat the point of the package.^3.x float means a security rebuild can land as a surprise mid-sprint; pin exactly when you have a release window.down → build --no-cache → up -d → version check → test suite. Add it as a documented runbook or a make upgrade target; ad-hoc up --build leaves stale layers behind.sail artisan optimize as a step.down before up. Reusing containers across an image change produces confusing mixed state (old entrypoint, new binary, or vice versa). Volumes are only removed when you explicitly ask for it, so down is cheap.apk packages.artisan optimize if you're measuring anything..env knobs (PHP version, ports, service selection) over editing vendor-published files, so the next runtime release doesn't conflict with local edits.sail logs for entrypoint problems, docker compose config to confirm which image tag is actually resolved, then build output for base-package/Alpine repo errors. Most "it broke after upgrade" reports land in one of those three.How can I help you explore Laravel packages today?