PHPackages                             reedware/sail-lite - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. reedware/sail-lite

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

reedware/sail-lite
==================

Docker files for basic PHP package development

v1.3.0(11mo ago)16.4k↓30.8%3MITShellCI passing

Since Apr 7Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/tylernathanreed/sail-lite)[ Packagist](https://packagist.org/packages/reedware/sail-lite)[ RSS](/packages/reedware-sail-lite/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)DependenciesVersions (7)Used By (3)

Sail Lite
=========

[](#sail-lite)

[![PHP](https://camo.githubusercontent.com/6351c44c5acd541a16e8505d9389a2576fb01528ebdbaf6a6b744ac49e401cae/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312b2d626c7565)](https://www.php.net/)[![Latest Stable Version](https://camo.githubusercontent.com/4ba022bf6f2d259823c3f0ef9cc3f5dbca435fb2d8f78400a73cad3bb9c25e3d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72656564776172652f7361696c2d6c697465)](https://packagist.org/packages/reedware/sail-lite)[![License](https://camo.githubusercontent.com/76adc66cd4d66a501515391a4650e68698b992ac2ad9e5fb1c2baddcd0215b1e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f72656564776172652f7361696c2d6c697465)](https://packagist.org/packages/reedware/sail-lite)

Table of Contents
-----------------

[](#table-of-contents)

- [Introduction](#introduction)
- [Sail Lite vs Docker Compose](#sail-lite-vs-docker-compose)
- [Sail Lite vs Laravel Sail](#sail-lite-vs-laravel-sail)
- [Installation and Setup](#installation-and-setup)
    - [Installing into Existing PHP Environments](#installing-into-existing-php-environments)
    - [Installing into New PHP Environments](#installing-into-new-php-environments)
    - [Configuring a Shell Alias](#configuring-a-shell-alias)
    - [Rebuilding Images](#rebuilding-images)
- [Starting and Stopping](#starting-and-stopping)
- [Executing Commands](#executing-commands)
- [PHP Versions](#php-versions)
- [Customization](#customization)

Introduction
------------

[](#introduction)

Sail Lite is a light-weight command-line interface for interacting a baseline [Docker](https://www.docker.com/) environment for package development. Sail Lite was inspired by [Laravel Sail](https://github.com/laravel/sail), which offers a richer experience for Laravel development. Sail Lite is intended to be a lighter-weight alternative to Laravel Sail, targeting package development, and isn't specific to Laravel development.

At its heart, Sail Lite is the `docker-compose.yml` file and the `sail` script that is stored at the root of your project. The `sail` script provides a CLI with convenient methods for interacting with the Docker containers defined by the `docker-compose.yml` file.

Sail Lite is supported on macOS, Linux, and Windows (via [WSL2](https://docs.microsoft.com/en-us/windows/wsl/about)).

Sail Lite vs Docker Compose
---------------------------

[](#sail-lite-vs-docker-compose)

Under the hood, Sail Lite is just [Docker](https://www.docker.com/). However, Sail Lite is pre-configured for PHP package development, and offers a `sail` binary with commands that are easier to work with.

Sail LiteDocker Compose`sail up``docker compose up``sail down``docker compose down``sail build``docker compose build``sail bash``docker compose exec -u sail dev bash`Sail Lite vs Laravel Sail
-------------------------

[](#sail-lite-vs-laravel-sail)

Sail Lite is intended for PHP package development, where as Laravel Sail targets the general Laravel developer experience.

If you intend to build Laravel applications, you should use Laravel Sail.

Sail Lite installs far fewer container dependencies than Laravel Sail (35 and counting), in that there's no database, cache, or node.js support.

Laravel Sail also requires several Illuminate and Symfony libraries, whereas Sail Lite has no package dependencies.

Sail LiteLaravel Sail[![Sail Lite Vendor](/img/sail-lite-vendor.png)](/img/sail-lite-vendor.png)[![Laravel Sail Vendor](/img/laravel-sail-vendor.png)](/img/laravel-sail-vendor.png)Installation and Setup
----------------------

[](#installation-and-setup)

### Installing into Existing PHP Environments

[](#installing-into-existing-php-environments)

If you are interested in using Sail Lite with an existing PHP package, you may simply install Sail Lite using the Composer package manager. Of course, these steps assume that your existing local development environment allows you to install Composer dependencies:

```
composer require reedware/sail-lite --dev
```

After Sail Lite has been installed, you may run the install command. This command will publish the `docker-compose.yml` file to the root of your application.

```
./vendor/bin/sail install
```

Finally, you may start Sail Lite.

### Installing into New PHP Environments

[](#installing-into-new-php-environments)

If you don't want to install PHP or Composer locally, you can install the `sail` binary and install your Composer dependencies from inside the new container:

```
mkdir -p vendor/bin
wget -O vendor/bin/sail https://raw.githubusercontent.com/tylernathanreed/sail-lite/refs/heads/master/bin/sail
chmod +x vendor/bin/sail
./vendor/bin/sail build
./vendor/bin/sail up -d
./vendor/bin/sail bash
> composer require reedware/sail-lite --dev
> exit
./vendor/bin/sail install
```

### Configuring a Shell Alias

[](#configuring-a-shell-alias)

By default, Sail Lite commands are invoked using the `vendor/bin/sail` script:

```
./vendor/bin/sail up -d
```

However, instead of repeatedly typing `vendor/bin/sail` to execute Sail Lite commands, you may wish to configure a shell alias that allows you to execute Sail's commands more easily:

```
alias sail='$([ -f sail ] && echo sail || echo vendor/bin/sail)'
```

To make sure this is always available, you may add this to your shell configuration file in your home directory, such as `~/.zshrc` or `~/.bashrc`, and then restart your shell.

Once the shell alias has been configured, you may execute Sail Lite commands by simply typing `sail`. The remainder of this documentation's examples will assume that you have configured this alias:

```
sail up -d
```

### Rebuilding Images

[](#rebuilding-images)

Sometimes you may want to completely rebuild your Sail Lite images to ensure all of the image's packages and software are up to date. You may accomplish this using the `build` command:

```
sail down

sail build --no-cache

sail up
```

Starting and Stopping
---------------------

[](#starting-and-stopping)

Sail Lite's `docker-compose.yml` file defines a single development container to help you build PHP packages.

To start the development container, you should execute the up command:

```
sail up
```

To start the development container in the background, you may start Sail Lite in "detached" mode:

```
sail up -d
```

To stop the development container, you may simply press Control + C to stop the container's execution. Or, if the container is running in the background, you may use the stop command:

```
sail stop
```

Executing Commands
------------------

[](#executing-commands)

When using Site Lite, you package is executing within a Docker container, and is isolated from your local computer. You may use the `shell` command to connect to your development container, allowing you to execute arbitrary shell commands within the container.

```
sail shell

sail root-shell
```

PHP Versions
------------

[](#php-versions)

Sail Lite follows the [Supported PHP Versions](https://www.php.net/supported-versions.php), including versions only receiving Security Support. When a new version of PHP is released, a new major release of Sail Lite will be published, and any PHP versions that have reached End of Life will no longer be supported. If you need to use older versions of PHP, then you will need to use older versions of Sail Lite.

Sail LitePHP Versions1.x8.1 - 8.4To change the PHP version that is used to serve your application, you should update the `build` definition of the `dev` container in your package's `docker-compose.yml` file:

```
# PHP 8.4
context: ./vendor/reedware/sail-lite/runtimes/8.4

# PHP 8.3
context: ./vendor/reedware/sail-lite/runtimes/8.3

# PHP 8.2
context: ./vendor/reedware/sail-lite/runtimes/8.2

# PHP 8.1
context: ./vendor/reedware/sail-lite/runtimes/8.1
```

In addition, you may wish to update your `image` name to reflect the version of PHP being used by your package. This option is also defined in your package's `docker-compose.yml` file:

```
image: sail-8.4/dev
```

After updating your package's `docker-compose.yml` file, you should rebuild your container image

```
sail down

sail build --no-cache

sail up -d
```

Customization
-------------

[](#customization)

Since Sail Lite is just Docker, you are free to customize nearly everything about it. To publish Sail Lite's own Dockerfiles, you may execute the publish command:

```
sail publish
```

After running this command, the Dockerfiles and other configuration files used by Sail Lite will be placed within a `docker` directory in your package's root directory. After customizing your Sail Lite installation, you may wish to change the image name for the development container in your package's `docker-compose.yml` file. After doing so, rebuild your development container using the `build` command. Assigning a unique name to the application image is particularly important if you are using Sail Lite to develop multiple PHP packages on a single machine:

```
sail build --no-cache
```

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance52

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Total

6

Last Release

336d ago

Major Versions

v0.1.0 → v1.0.02025-04-07

PHP version history (2 changes)v0.1.0PHP ^8.3

v1.1.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/6bfd8171901449cf1e05fa5db261a2f424abca5e26818ce54b95442de0661754?d=identicon)[tylernathanreed](/maintainers/tylernathanreed)

---

Top Contributors

[![tylernathanreed](https://avatars.githubusercontent.com/u/6486381?v=4)](https://github.com/tylernathanreed "tylernathanreed (31 commits)")

---

Tags

devdockersail

### Embed Badge

![Health badge](/badges/reedware-sail-lite/health.svg)

```
[![Health](https://phpackages.com/badges/reedware-sail-lite/health.svg)](https://phpackages.com/packages/reedware-sail-lite)
```

###  Alternatives

[ryoluo/sail-ssl

Laravel Sail plugin to enable SSL (HTTPS) connection with Nginx.

188672.6k2](/packages/ryoluo-sail-ssl)[aschmelyun/fleet

Run multiple Laravel Sail websites on your local environment

33269.5k](/packages/aschmelyun-fleet)[spatie/docker

Run a docker container in your PHPUnit tests

478120.2k12](/packages/spatie-docker)[testcontainers/testcontainers

Testcontainers implementation in PHP

199184.7k17](/packages/testcontainers-testcontainers)[yoelpc4/laravel-sail-preset

Laravel Sail runtimes &amp; docker-compose.yml preset.

1429.2k](/packages/yoelpc4-laravel-sail-preset)[contributte/bootstrap

Extra contrib to nette/boostrap

111.5M3](/packages/contributte-bootstrap)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
