- Can I use Sail Lite for a Laravel package that doesn’t need a database?
- Yes, Sail Lite is perfect for Laravel packages without database dependencies. It provides a minimal PHP-only Docker environment, eliminating the need for Laravel Sail’s heavier setup. Just run `composer require reedware/sail-lite --dev` and use the `sail` commands to manage your container.
- How do I install Sail Lite in an existing PHP project?
- Run `composer require reedware/sail-lite --dev` in your project root. This adds the `sail` script and `docker-compose.yml` to your project. Ensure Docker is installed on your system, then run `sail install` to set up the environment. No manual Dockerfile tweaks are needed for basic use.
- Does Sail Lite support PHP 8.2 or 8.3 for my Laravel package?
- Yes, Sail Lite supports PHP 7.2 through 8.5. To use a specific version, set the `PHP_VERSION` in your `.env` file (e.g., `PHP_VERSION=8.3`). This ensures consistency between local development and CI environments without modifying the Dockerfile.
- Will Sail Lite work on Windows without WSL2?
- No, Sail Lite requires Docker with WSL2 on Windows. Without WSL2, Docker’s performance and compatibility may degrade, making the setup unreliable. If your team avoids WSL2, consider alternatives like Laravel Valet or manual Docker Compose configurations.
- How do I customize the PHP extensions in Sail Lite for my package?
- Use `sail publish` to expose the Dockerfile and modify it to include custom extensions (e.g., `RUN docker-php-ext-install pdo_pgsql`). After publishing, rebuild the image with `sail build`. This approach keeps customizations version-controlled in your project.
- Is Sail Lite suitable for a Symfony bundle instead of a Laravel package?
- Absolutely. Sail Lite is framework-agnostic and works for any PHP project, including Symfony bundles. It avoids Laravel-specific dependencies, making it ideal for standalone PHP libraries or non-Laravel ecosystems. Just install it via Composer and use the `sail` commands.
- How do I integrate Sail Lite with GitHub Actions for CI/CD?
- Add a step to your GitHub Actions workflow to install Sail Lite and start the container. Example: `composer require reedware/sail-lite --dev && sail up -d`. Use `sail exec` to run tests or scripts inside the container. Ensure your workflow has Docker pre-installed or configured.
- What’s the difference between Sail Lite and Laravel Sail?
- Sail Lite is a minimal, framework-agnostic Docker wrapper for PHP packages, while Laravel Sail includes Laravel-specific services (e.g., queues, databases) and dependencies. Sail Lite avoids bloat, making it lighter and faster for projects without Laravel’s full stack.
- Can I use Sail Lite for a package that requires Node.js or Redis?
- No, Sail Lite is designed for PHP-only environments. If your package needs Node.js, Redis, or databases, use Laravel Sail or a custom `docker-compose.yml`. Sail Lite lacks built-in support for multi-container setups, but you can extend it manually if needed.
- How do I troubleshoot ‘sail up’ failing on my first run?
- Check Docker is running (`docker --version`) and your user has permissions. Verify the `.env` file exists (Sail Lite creates a default one). If using WSL2, ensure Docker Desktop is configured for integration. Run `sail down` first if containers are stuck, then retry `sail up`.