neoighodaro / little-sail

Little Sail is a smaller runtime image for Laravel Sail
MIT License
37 stars 7 forks source link

⛵ Little Sail

Total Downloads Latest Stable Version License

Little Sail is just an extension for Laravel Sail. Currently, the Laravel Sail PHP image is over ~666mb. This is mostly because it uses the Ubuntu image. For those who would prefer smaller images, I created this extension.

The image generated by this package is around ~284mb. Thats around a 57% decrease in size.

Screenshot 2021-02-28 at 16 14 43

It is a similar image with the same extensions but built using a Linux Alpine base.

Installation

To install, use composer to pull the package:

composer require neo/little-sail --dev

Next, update your projects docker-compose.yml file as follows:

version: '3'
services:
    api:
        build:
            context: ./vendor/laravel/sail/runtimes/8.2             # Replace this
            context: ./vendor/neo/little-sail/runtimes/8.2-alpine   # With this (or 8.0 or 7.4 if thats what you want)
# ...

If you already had Laravel Sail running, you will have to stop the containers, and then delete the sail-8.0/app image and then run sail up again (you can also just change the image name in your docker-compose.yml file).

You can use the nifty command included with the package:

$ ./vendor/bin/dock

Then when the command is done running, you can bring Laravel Sail up again.

Customising Little Sail runtimes

If you want, you can update the Little Sail runtimes to work specifically for you. Run:

$ php artisan little-sail:publish # or sail artisan little-sail:publish