Coder Social home page Coder Social logo

sail's Introduction

Logo Laravel Sail

Total Downloads Latest Stable Version License

Introduction

Sail provides a Docker powered local development experience for Laravel that is compatible with macOS, Windows (WSL2), and Linux. Other than Docker, no software or libraries are required to be installed on your local computer before using Sail. Sail's simple CLI means you can start building your Laravel application without any previous Docker experience.

Inspiration

Laravel Sail is inspired by and derived from Vessel by Chris Fidao. If you're looking for a thorough introduction to Docker, check out Chris' course: Shipping Docker.

Official Documentation

Documentation for Sail can be found on the Laravel website.

Contributing

Thank you for considering contributing to Sail! You can read the contribution guide here.

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

License

Laravel Sail is open-sourced software licensed under the MIT license.

sail's People

Contributors

amayer5125 avatar ams-ryanolson avatar ankurk91 avatar bram-pkg avatar c-fitzmaurice avatar caneco avatar dimitriacosta avatar driesvints avatar finagin avatar glenngijsberts avatar jamacku avatar jessarcher avatar jubeki avatar mehdirajabi59 avatar negoziator avatar nhaynes avatar nunomaduro avatar prageeth avatar punyflash avatar ribeirobreno avatar roberto-aguilar avatar ryoluo avatar samuelmteixeira avatar samuelmwangiw avatar saulens22 avatar taylorotwell avatar totov avatar vmsh0 avatar xico2k avatar zendraxl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sail's Issues

Exception: `Writing to directory /home/sail/.config/psysh is not allowed.`

  • Sail Version: dev-master
  • Laravel Version: 8.37.0
  • PHP Version: 8.0.3
  • Database Driver & Version: Postgres 13

Description:

When trying to run sail tinker I get this error. I also get this error when trying to run php artisan tinker from within the docker container (gained entry through sail shell).

 Writing to directory /home/sail/.config/psysh is not allowed.

  at vendor/psy/psysh/src/ConfigPaths.php:362
    358▕             @\mkdir($dir, 0700, true);
    359▕         }
    360▕ 
    361▕         if (!\is_dir($dir) || !\is_writable($dir)) {
  ➜ 362▕             \trigger_error(\sprintf('Writing to directory %s is not allowed.', $dir), \E_USER_NOTICE);
    363▕ 
    364▕             return false;
    365▕         }

Storage folder write permissions fail on newly installed Sail

  • Sail Version: 1.4.9
  • Laravel Version: 8.33.1
  • PHP Version: 8.0
  • Database Driver & Version: MySQL 8.0.23-1debian10

Description:

Unable to write to storage folder.

image

Steps To Reproduce:

I have installed Sail into an existing Laravel 8 application as per the installation guide. The container and associated services come up and yield no errors.

image

When I attempt to access the application from the browser, the exception mentioned above shows up.

Normally, all you need to do is chmod and/or chown the /storage/ folder in order for Laravel to run.

When I try to publish the Dockerfiles (in order to attempt to set permissions), I get this other exception:

 ./vendor/bin/sail artisan sail:publish -vvv

   League\Flysystem\Exception 

  Impossible to create the root directory "/var/www/html/docker/7.4".

  at vendor/league/flysystem/src/Adapter/Local.php:112
    108▕             clearstatcache(false, $root);
    109▕ 
    110▕             if ( ! is_dir($root)) {
    111▕                 $errorMessage = isset($mkdirError['message']) ? $mkdirError['message'] : '';
  ➜ 112▕                 throw new Exception(sprintf('Impossible to create the root directory "%s". %s', $root, $errorMessage));
    113▕             }
    114▕         }
    115▕     }
    116▕ 

  1   vendor/league/flysystem/src/Adapter/Local.php:133
      League\Flysystem\Adapter\Local::ensureDirectory()

  2   vendor/league/flysystem/src/Filesystem.php:102
      League\Flysystem\Adapter\Local::write()

  3   vendor/league/flysystem/src/MountManager.php:597
      League\Flysystem\Filesystem::put()

  4   vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php:254
      League\Flysystem\MountManager::put()

  5   vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php:238
      Illuminate\Foundation\Console\VendorPublishCommand::moveManagedFiles()

  6   vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php:203
      Illuminate\Foundation\Console\VendorPublishCommand::publishDirectory()

  7   vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php:166
      Illuminate\Foundation\Console\VendorPublishCommand::publishItem()

(...)

Guzzle HTTP not working on same project URL

  • Sail Version: 1.4.12
  • Laravel Version: 8.37.0
  • PHP Version: 8.0.3
  • Database Driver & Version: MySQL 8.0

Description:

When I am trying to make a HTTP request using builtin Guzzle library to one of my own route (e.g: larasail.test/api/login, POST req), the request keep loading forever. External HTTP calls work as expected without any issue.
I am using on a full fresh Laravel v8 installation and using url() method to get the url from .env's APP_URL variable.

Steps To Reproduce:

example routes/api.php:

Route::post('login', [AuthController::class, 'login']);
Route::post('secret-login', [SecretController::class, 'secret']);

example AuthController.php:

use Illuminate\Support\Facades\Http;
class AuthController extends Controller
{
    public function login()
    {
        $response = Http::post(url('/api/secret-login'), ['username' => '[email protected]', 'password' => 'password']);

        return $response->json();
    }
}

Sail in Macbook air m1

  • Sail Version: 1.4.12
  • Laravel Version: 8.23.1
  • PHP Version: 8
  • Database Driver & Version:

Description:

Any tips on how to install Laravel Sail on a macbook air m1? I have tried everything and always made the mistake :(. I have already followed the laravel documentation, and all the possible tutorials and tips I found on the internet and it always arrives in the result:
ERROR: Service 'laravel.test' failed to build.

Steps To Reproduce:

sail should report its usage for -h option.

  • MacOS: 11.2.3
  • Bash Version:3.2
  • Sail Version: 1.0.1
  • Laravel Version: 8.12
  • PHP Version: 8.0.2

Description:

I would like to see more options for the sail command.

Steps To Reproduce:

・Reproduction Procedure
sail -h

・Expected results
There is a description of the sail command

・Actual result
The description of the docker compose command is printed.

Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f <arg>...] [--profile <name>...] [options] [--] [COMMAND] [ARGS...]
  docker-compose -h|--help
...

Laravel sail failed to install swoole

  • Sail Version: 1.4.11
  • Laravel Version: 8.36.2
  • PHP Version: 8.0.3

Description:

When the . /vendor/bin/sail build command is executed, the installation of swoole fails.

Steps To Reproduce:

Execute the command ./vendor/bin/sail build, and you will get the following output:

./vendor/bin/sail build
mysql uses an image, skipping
Building laravel.test
[+] Building 6857.5s (9/16)
 => [internal] load build definition from Dockerfile                                                                                                                                                                                                                       0.1s
 => => transferring dockerfile: 2.30kB                                                                                                                                                                                                                                     0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                                                          0.0s
 => => transferring context: 2B                                                                                                                                                                                                                                            0.0s
 => [internal] load metadata for docker.io/library/ubuntu:20.04                                                                                                                                                                                                            5.3s
 => [internal] load build context                                                                                                                                                                                                                                          0.0s
 => => transferring context: 906B                                                                                                                                                                                                                                          0.0s
 => [ 1/12] FROM docker.io/library/ubuntu:20.04@sha256:3c9c713e0979e9bd6061ed52ac1e9e1f246c9495aa063619d9d695fb8039aa1f                                                                                                                                                   13.0s
 => => resolve docker.io/library/ubuntu:20.04@sha256:3c9c713e0979e9bd6061ed52ac1e9e1f246c9495aa063619d9d695fb8039aa1f                                                                                                                                                      0.0s
 => => sha256:10e6159c56c084c858f5de2416454ac0a49ddda47b764e4379c5d5a147c9bf5f 187B / 187B                                                                                                                                                                                 1.2s
 => => sha256:3c9c713e0979e9bd6061ed52ac1e9e1f246c9495aa063619d9d695fb8039aa1f 1.20kB / 1.20kB                                                                                                                                                                             0.0s
 => => sha256:5403064f94b617f7975a19ba4d1a1299fd584397f6ee4393d0e16744ed11aab1 943B / 943B                                                                                                                                                                                 0.0s
 => => sha256:26b77e58432b01665d7e876248c9056fa58bf4a7ab82576a024f5cf3dac146d6 3.32kB / 3.32kB                                                                                                                                                                             0.0s
 => => sha256:a70d879fa5984474288d52009479054b8bb2993de2a1859f43b5480600cecb24 28.57MB / 28.57MB                                                                                                                                                                          11.8s
 => => sha256:c4394a92d1f8760cf7d17fee0bcee732c94c5b858dd8d19c7ff02beecf3b4e83 848B / 848B                                                                                                                                                                                 1.4s
 => => extracting sha256:a70d879fa5984474288d52009479054b8bb2993de2a1859f43b5480600cecb24                                                                                                                                                                                  1.0s
 => => extracting sha256:c4394a92d1f8760cf7d17fee0bcee732c94c5b858dd8d19c7ff02beecf3b4e83                                                                                                                                                                                  0.0s
 => => extracting sha256:10e6159c56c084c858f5de2416454ac0a49ddda47b764e4379c5d5a147c9bf5f                                                                                                                                                                                  0.0s
 => [ 2/12] WORKDIR /var/www/html                                                                                                                                                                                                                                          0.1s
 => [ 3/12] RUN ln -snf /usr/share/zoneinfo/UTC /etc/localtime && echo UTC > /etc/timezone                                                                                                                                                                                 0.2s
 => [ 4/12] RUN apt-get update     && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2     && mkdir -p ~/.gnupg     && chmod 600 ~/.gnupg     && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf     &&  6836.5s
 => ERROR [ 5/12] RUN pecl install swoole                                                                                                                                                                                                                                  2.2s
------
 > [ 5/12] RUN pecl install swoole:
#8 2.216 No releases available for package "pecl.php.net/swoole"
#8 2.216 install failed
------
executor failed running [/bin/sh -c pecl install swoole]: exit code: 1

When I add RUN pecl channel update pecl.php.net before RUN pecl install swoole in Dockerfile, it's built successfully.

RUN pecl channel-update pecl.php.net
RUN pecl install swoole

I'm not sure if this line is necessary, but in my past experience of using pecl, there have been several such cases.

Windows (WSL2) recognized as "UNKNOWN" operating system.

  • Sail Version: 1.4.2
  • Laravel Version: 8.12
  • PHP Version: 7.4.12
  • Database Driver & Version: MySql v8.0

Description:

Running sail up on Windows (WSL2) not working as expected. Operating system is not recognized as linux or mac, which leads to exit:

sail/bin/sail

Line 18 in d1a91b0

exit 1

In my case uname -s returns MINGW64_NT-10.0. Problem can be solved by simply removing exit command but we all agree that it is not an elegant solution. Maybe it is possible to add optional parameter to ignore that condition check.

Add an option to switch the ubuntu source/mirror

In the first place: I want to say thank you for this package, I love it!


Is it possible to add an option to laravel/sail to download the Ubuntu/Image source from anothers servers? Like aliyun for China with a environment variable, like SAIL_CHANGE_SOURCE=true?

I've been trying to customize the Dockerfile that sails creates but in order to publish the vendor files I've to wait for sails up to finish but it takes hours and fails in the end.

Here you can find a PR that merged in laradock to support different sources (laravel docker image):
https://github.com/laradock/laradock/pull/2388/files

What do you think? I could create a PR with this feature

failed to build due to "Failed to fetch .... Bad Request" errors

Version

carbon :: ~/Code/example-app » sail version
docker-compose version 1.28.5, build c4eb3a1f
docker-py version: 4.4.4
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

Windows 10, WSL2 -> Ubuntu 20.04.2, Docker Desktop 3.2.2.

Description:

Error: Service 'laravel.test' failed to build.

During the ./vendor/bin/sail up command, 4 Ubuntu packages fail to download.

#7 48.89 Err:27 http://archive.ubuntu.com/ubuntu focal/main amd64 python3-pkg-resources all 45.2.0-1
#7 48.89   400  Bad Request [IP: 91.189.88.152 80]
...
#7 58.82 Err:83 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gpgconf amd64 2.2.19-3ubuntu2.1
#7 58.82   400  Bad Request [IP: 91.189.88.152 80]
...
#7 80.50 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/s/setuptools/python3-pkg-resources_45.2.0-1_all.deb  400  Bad Request [IP: 91.189.88.152 80]
#7 80.50 E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/g/gnupg2/gpgconf_2.2.19-3ubuntu2.1_amd64.deb  400  Bad Request [IP: 91.189.88.152 80]

Steps To Reproduce:

Run the standard curl -s "https://laravel.build/example-app" | bash
cd example-app
./vendor/bin/sail up
Once the process runs for a bit, you receive the error:

#7 80.50 E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
------
executor failed running [/bin/sh -c apt-get update     && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2     && mkdir -p ~/.gnupg     && chmod 600 ~/.gnupg     && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf     && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C     && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C     && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list     && apt-get update     && apt-get install -y php8.0-cli php8.0-dev        php8.0-pgsql php8.0-sqlite3 php8.0-gd        php8.0-curl php8.0-memcached        php8.0-imap php8.0-mysql php8.0-mbstring        php8.0-xml php8.0-zip php8.0-bcmath php8.0-soap        php8.0-intl php8.0-readline        php8.0-msgpack php8.0-igbinary php8.0-ldap        php8.0-redis     && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer     && curl -sL https://deb.nodesource.com/setup_15.x | bash -     && apt-get install -y nodejs     && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -     && echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list     && apt-get update     && apt-get install -y yarn     && apt-get install -y mysql-client     && apt-get install -y postgresql-client     && apt-get -y autoremove     && apt-get clean     && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*]: exit code: 100
ERROR: Service 'laravel.test' failed to build

See attached full log of sail build --no-cache

sail-up.log

PHP 8.0.5 PgSQL Bug

  • Sail Version: 1.7.0
  • Laravel Version: 8.43.0
  • PHP Version: 8.0.5
  • OS: Windows / Linux / macOS 11.5

Description:

PHP 8.0.5's pgsql module has a regression bug that doesn't exist in php 8.0.4 and is fixed in 8.0.6. Unfortunately this has not yet been updated in Ondrej's PHP repos, which is used in the install script in docker/8.0/Dockerfile, and it is currently unknown when this will be updated.

Is there a work-around that can be employed to update sail to use the latest PHP stable, which as of this writing is 8.0.6?

The following are some references to the problem:

Steps To Reproduce:

Use the PGSQL database driver and try to update a boolean field in the database that has a default value. Also updating the same field with NULL, so as to have it fall back to the default value. The bug causes pgsql to conflate booleans with integers.

Thanks for any suggestions! :)

Mysql exiting due to DB_USERNAME=root

  • Sail Version: 1.4.8
  • Laravel Version: 8.33.1
  • PHP Version: 8.0
  • Database Driver & Version: mysql:latest

Description:

Brand new project, cleared docker cache etc and mysql exits. I believe it's down to the default .env file specifying DB_USERNAME=root

Changing DB_USERNAME fixes it

Steps To Reproduce:

curl -s "https://laravel.build/example-app" | bash
sail up -d

Mysql will exit.

REDIS fails with MISCONF

  • Sail Version: 1.4.9
  • Laravel Version: 8.5.15
  • PHP Version: 8.0
  • Database Driver & Version: MySQL 8.0

Description:

After decent amount of time after sail started up REDIS (used as session and queue driver) falls down with the following exception.

MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
Redis::setex
vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php:116
    {

        return $this->createSubscription($channels, $callback, __FUNCTION__);

    }


    /**

     * Run a command against the Redis database.

     *

     * @param  string  $method

     * @param  array  $parameters

     * @return mixed

     */

    public function command($method, array $parameters = [])

    {

        $start = microtime(true);

 

        $result = $this->client->{$method}(...$parameters);

 

        $time = round((microtime(true) - $start) * 1000, 2);

 

        if (isset($this->events)) {

            $this->event(new CommandExecuted($method, $parameters, $time, $this));

        }

 

        return $result;

    }

 

    /**

     * Fire the given event if possible.

     *

     * @param  mixed  $event

     * @return void

Steps To Reproduce:

  1. Install Laravel with Sail (include Redis service).
  2. Setup Redis as session and queue driver.
  3. Run some tasks periodically via schedule.

Configure PHP Installation to include --with-pear flag

  • Sail Version: docker-compose version 1.28.5, build c4eb3a1f
  • Laravel Version: 8.35.1
  • PHP Version: PHP 8.0.3

Description:

I'm trying to install gRPC following these instructions. In "Installing PECL" there is a comment saying

If using PHP 7.4+, PHP must have been installed with the --with-pear flag.

but I could not figure out where should I put that flag.

Even ignoring the comment, when running RUN pecl install grpc on 8.0 Dockerfile, this error shows:

 => ERROR [ 5/13] RUN pecl install grpc                                                                                                                                                                                                 0.4s
------
 > [ 5/13] RUN pecl install grpc:
#8 0.401 PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in /usr/share/php/PEAR/Config.php on line 2095
------
executor failed running [/bin/sh -c pecl install grpc]: exit code: 255
ERROR: Service 'laravel.test' failed to build

Steps To Reproduce:

php artisan sail:publish
Open 8.0 Dockerfile
Add autoconf zlib1g-dev php-pear to Line 15
Add following lines after the RUN apt- one

RUN pecl install grpc
RUN echo "extension=grpc.so" > /etc/php/8.0/cli/php.ini

Run sail build --no-cache

php 8.1

Hi there,

what about php 8.1, is it possible in close future to have php 8.1?

Make artisan command to up Laravel Sail

Details of Improvement

Some Laravel users are dissatisfied with typing the command to up the Laravel Sail every time.
So, create an artisan command to up the Laravel Sail and support users.

Expected behavior

  1. Enter artisan command
    (ex: php artisan sail:up)

  2. Up the Sail

  3. You can start using Laravel Sail

PHP 8.0 bug: Invalid opcode 117/2/0

  • Sail Version: 1.4.10
  • Laravel Version: 8.43.0
  • PHP Version: 8.0
  • OS: Fedora Linux 33

Description:

Actually, this not a Sail's bug but rather a PHP 8.0. When requesting the oauth/token endpoint provided by Laravel Passport, an error related to opcache is thrown, the bug is already reported and there is a workaround, IMHO Sail should update the PHP 8 image (The workaround suggested by nikik [at] PHP [dot] net is to use opcache.optimization_level=0) to prevent that error.

Invalid opcode 117/2/0. {"exception":"[object] (Symfony\Component\ErrorHandler\Error\FatalError(code: 0): Invalid opcode 117/2/0. at /Users/me/my-app/vendor/defuse/php-encryption/src/Core.php:412) [stacktrace] #0 {main} "}

References:

https://bugs.php.net/bug.php?id=80519
see also: https://laracasts.com/discuss/channels/laravel/php80-defusephp-encryption-invalid-opcode-11720

Steps To Reproduce:

  1. create fresh Laravel App curl -s https://laravel.build/example-app | bash
  2. Be sure that sail use PHP 8 as runtime
  3. Install Laravel Passport
  4. sail artisan passport:install
  5. register passport route
  6. Finally request the oauth/token with a password grant type (assuming sail up and running)

Sail stops the container when running shell commands

  • Sail Version: 1.4.7
  • Laravel Version: 8.33.1

Description:

When I try to execute any command using sail, it gives the following output:

Shutting down old Sail processes...
Sail is not running.

Steps To Reproduce:

  1. Install a fresh Laravel project (with jetstream) with laravel new example --jet
  2. Navigate to the project root
  3. Start the Sail container with sail up -d
  4. Execute a shell command, eg. sail artisan migrate
  5. Observe the process shutting down with output Shutting down old Sail processes...
  6. Observe the error Sail is not running. being returned.

When not using Publish Command, It doesn't replaces docker build context

  • Sail Version: 1.4.12
  • Laravel Version: 8.37.0
  • PHP Version: 8.0.3
  • Database Driver & Version: MySql v8.0

Description:

When we don't use publish command specifically, then docker files gets exported but it doesn't replace the build context in the docker-compose.yml file

Steps To Reproduce:

Install sail as normal instructions and instead of using sail:publish command,

run sail artisan vendor:publish --tag=sail

now docker files are exported but you see docker-compose.yml file still refers to docker files in sail package.

Http requests to the same application (Like Laravel/Passport password grant client requests) crashes the application

  • Sail Version: 1.5.0
  • Laravel Version: 8.36.2
  • Laravel Passport Version: 10.1.3
  • PHP Version: 7.4 or 8.0
  • Database Driver & Version: mysql 8.0

Description:

Before publish this Issue I saw that it will crash for basically any request to the same application. It's not a bug related with Passport but it's still a good example

On our application we are using Passport password grant clients to authenticate our users. We have followed the steps on the Passport docs to implement it as well. So when the user request api/login for example we ran the following example as in the docs:

use Illuminate\Support\Facades\Http;

$response = Http::asForm()->post('http://passport-app.com/oauth/token', [
    'grant_type' => 'password',
    'client_id' => 'client-id',
    'client_secret' => 'client-secret',
    'username' => '[email protected]',
    'password' => 'my-password',
    'scope' => '',
]);

return $response->json();

This is where it crashes and does not get the response as expected, it's basically waiting and waiting for the Passport response. I'm not sure but I think it happens because Sail is running with the php built-in server, I have tested our application with laradock + Nginx and it's working as expected, it's also working on our staging environment on Vapor.

Steps To Reproduce:

  • Create a fresh Laravel application
  • Install laravel/passport following the docs
  • Create a new route with the following contents:
    Route::get('/token', function () {
       $response = Http::asForm()->post('http://localhost/oauth/token', [
           'grant_type' => 'password',
           'client_id' => 'client-id',
           'client_secret' => 'client-secret',
           'username' => '[email protected]',
           'password' => 'my-password',
           'scope' => '',
       ]);
    
       return $response->json();
    });
    
  • Remember that you should replace 'client_id' and 'client_secret' with the values stored on your database when you ran php artisan passport:install it should be the second row on oauth_clients table
  • Open http://localhost/token in your browser and you'll see that it will be loading and loading...
  • If you try to even access http://localhost it will be not possible, basically the entire app has crashed

Possible solution:

Replace the built-in php server by Nginx or other http server looks a good solution, but to keep it simple I have just replaced the php built-in server by Laravel Octane follwing the Octante Docs that's easier than customize sail by adding a webserver like Nginx.

Now if you go to http://localhost/token it will work fine and return the JSON response as expected.

[Feature request] Add Minio container to simulate S3

In my company we're now fully working with Vapor, also that means we need S3 for simulate file uploads from the frontend with temporary URLs and all of that stuff only available in S3 like storage.

So it'll be very cool if we have this on Sail, I can probably send a PR later adding this feature

X-debug support

Hello,

I have seen the closed PRs, but I would like to ask one more time, as it is a great helping tool for the majority of us.

Are there any plans to embed support of x-debug?

Use Alpine image instead of Ubuntu

Please let me know if there are any plans in future for using an alpine image instead of ubuntu for a small-sized sail container.
I would like to work on this feature because currently, ubuntu is a very heavy image as compared to alpine Linux.

Failed to clone https://github.com/KyranRana/simple-javascript-compilation.git

  • Sail Version: Latest
  • Laravel Version: Lates
  • PHP Version: 8.0
  • Database Driver & Version:

Description:

Hi, when I try to Install Composer Dependencies For Existing Applications. using:

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php80-composer:latest \
    composer install --ignore-platform-reqs

from https://laravel.com/docs/8.x/sail#installing-composer-dependencies-for-existing-projects
I get the following error

Failed to clone https://github.com/KyranRana/simple-javascript-compilation.git via https, ssh protocols, aborting.

and after browsing the repository it's not available giving 404 error on Github.

Steps To Reproduce:

MinIO could not resolve host

  • Sail Version: 1.6.0
  • Laravel Version: 8.42.1
  • PHP Version: 8.0.3
  • OS: macOS 11.3.1

Description:

Documentation says use http://minio:9000 as host for AWS_ENDPOINT but I catching exception

Aws\S3\Exception\S3Exception
Error executing "PutObject" on "http://local.minio:9000/dir/1.txt"; AWS HTTP error: cURL error 6: Could not resolve host: local.minio (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://local.minio:9000/dir/test.txt

But if I use IP from minio container log it works

Endpoint: http://192.168.128.7:9000 http://127.0.0.1:9000

Steps To Reproduce:

  1. Setup env from documentation:
    FILESYSTEM_DRIVER=s3
    AWS_ACCESS_KEY_ID=sail
    AWS_SECRET_ACCESS_KEY=password
    AWS_DEFAULT_REGION=us-east-1
    AWS_BUCKET=local
    AWS_ENDPOINT=http://minio:9000
    AWS_USE_PATH_STYLE_ENDPOINT=true
    
  2. Run:
    \Illuminate\Support\Facades\Storage::put('dir/test.txt', '123')

Pecl install swoole fails on ARM Mac

  • Sail Version: 1.4.11
  • Laravel Version: 8.36.1
  • PHP Version: 8.0.3
  • Database Driver & Version: mysql:8.0
  • Docker RC3 for Apple Silicon (new quemu based virtualization is disabled)

Description:

When creating the laravel app docker container pecl install swoole fails with 'error no installation candidate'.

This can be fixed with running

pecl channel-update pecl.php.net before pecl swoole install.

Steps To Reproduce:

curl -s https://laravel.build/example-app | bash
cd example-app
adding platform: 'linux/x86_64' to mysql:8 on docker-compose.yml to prevent mysql image platform error
vendor/bin/sail up -d

If you have further questions please contact me thanks!

Multi-byte file names will be broken.

In a Docker environment using sail, multi-byte file names are broken.

I have placed files named ascii_file_name.pdf and 日本語のファイル名.pdf.
When I run the ls command after getting into Docker using sail, the file name of 日本語のファイル名.pdf is broken.

I have attached a screenshot of the actual corruption.

How can I resolve this issue?

sail

'sail share' gives 'host.docker.internal' as url

  • Sail Version: 1.4.11
  • Laravel Version: 8.36.2
  • PHP Version: 7.4.16 Development Server
  • Database Driver & Version: MySQL 8

Description:

When exposing project by 'sail share', it gives 'host.docker.internal' in functions like 'route()', facades 'Redirect' etc. instead of beautiful 'http://projectname.laravel-sail.site:8080'
All request parameters works with 'host.docker.internal' (example "HTTP_HOST" => "host.docker.internal"). There is no place there I can find url 'http://projectname.laravel-sail.site:8080'.
So, external users can't click any links on exposed site.

Steps To Reproduce:

  1. In console 'sail share'.
  2. Check in browser dd(request()) print.

Laravel Sail share via expose doesn't seem to function at all

  • Laravel Version: 8.29.0
  • PHP Version: 8.0.2
  • Database Driver & Version: N/A

Description:

Originally posted as a discussion, but it seems I'm not the only one with this issue so I thought I would escalate into a bug report.

Trying to share my Laravel site with my phone to do some testing via Laravel Sail.

So I type in sail share and get the usual output. When I visit the dashboard URL that appears on my Mac, I get Site cannot be reached.

When I try to visit the URL generated by sail locally and via my phone, I get ERR_EMPTY_RESPONSE in Chrome.

Not sure whats going on? I'm using Docker Desktop for Mac. Am I doing something wrong here?

Steps To Reproduce:

  1. Install Laravel on MacOS
  2. Install Laravel Sail with the PHP 8 runtime
  3. Make sure your Laravel welcome page is showing locally
  4. Run sail share to start sharing your site
  5. See that you cannot visit the shared site with the given link
  6. See that you also cannot see the dashboard

Deploy to Vapor from Sail

Currently it's not possible to deploy from Sail to Vapor as it seems.
(Probably only if you add vapor-cli to your dependencies, but I think it should not end up in production?)

It would be great if vapor-cli could be part of the container.
Otherwise, you need everything installed on your host system that you also install in the container, or you get error.

Just now I had to change my .env to not use redis anymore, just to make a deployment.

Using artisan:serve as webserver not multithreaded

Hello everybody,

it would be great if Sail would support another Webserver (NGINX + FPM) as the missing ability to run multi-threaded crashes my application when I try to do something like this:

echo Browsershot::html($body_html)->format('A4')
                ->margins(0, 0, 0, 0)->showBackground()
                ->addChromiumArguments([
                    'font-render-hinting' => 'none',
                ])->waitUntilNetworkIdle()->noSandbox()->pdf();

If $body_html contains assets that are pointing to the very same application like <link href="{{ asset(('/css/app.css')) }}" rel="stylesheet"> those requests run into timeout.

ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

  • Sail Version: 1.6.0
  • Laravel Version: 8.5.18
  • PHP Version: 7.4.16
  • Database Driver & Version:

Description:

ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

Pulling mysql (mysql:8.0)...
8.0: Pulling from library/mysql
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries

Steps To Reproduce:

after curl -s https://laravel.build/example-app | bash , I launch: cd example-app && ./vendor/bin/sail up then throws the error

Min.IO service

Hello, I'm trying to add Min.IO to docker-compose, it's working but the 9000 port is unavailable via browser.
Can you add this feature to next version?

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
            - redis
            - minio
            - selenium
    minio:
        image: 'minio/minio:latest'
        expose:
          - '${FORWARD_MINIO_PORT:-9000}'
        ports:
          - '${MINIO_PORT:-9000}:9000'
        environment:
            MINIO_ROOT_USER: '${MINIO_USER}'
            MINIO_ROOT_PASSWORD: '${MINIO_PASSWORD}'
        volumes:
            - 'MinIo:/data'
        networks:
            - sail
        command: server http://minio/data
        healthcheck:
            test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
            interval: 30s
            timeout: 20s
            retries: 3
    mysql:
        image: 'mysql:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
        volumes:
            - 'sailmysql:/var/lib/mysql'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "mysqladmin", "ping"]
    redis:
        image: 'redis:alpine'
        ports:
            - '${FORWARD_REDIS_PORT:-6379}:6379'
        volumes:
            - 'sailredis:/data'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
    meilisearch:
        image: 'getmeili/meilisearch:latest'
        ports:
            - '${FORWARD_MEILISEARCH_PORT:-7700}:7700'
        volumes:
            - 'sailmeilisearch:/data.ms'
        networks:
            - sail
    mailhog:
        image: 'mailhog/mailhog:latest'
        ports:
            - '${FORWARD_MAILHOG_PORT:-1025}:1025'
            - '${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025'
        networks:
            - sail
    selenium:
       image: 'selenium/standalone-chrome'
       volumes:
            - '/dev/shm:/dev/shm'
       networks:
           - sail
networks:
    sail:
        driver: bridge
volumes:
    sailmysql:
        driver: local
    MinIo:
        driver: local
    sailredis:
        driver: local
    sailmeilisearch:
        driver: local

Laravel new project Build failed

  • Sail Version: #.#.#
  • Laravel Version: #.#.#
  • PHP Version: #.#.#
  • Database Driver & Version:

Description:

new Laravel project
just run sail up -d in WSL Ubuntu

Steps To Reproduce:

image

image

sail should report its usage for -v option.

MacOS: 11.2.3
Bash Version:3.2
Sail Version: 1.0.1
Laravel Version: 8.12
PHP Version: 8.0.2
Description:
I would like to see more options for the sail command.

Steps To Reproduce:
・Reproduction Procedure
sail -v

・Expected results
There is a description of the sail command

・Actual result
The description of the docker compose command is printed.

docker-compose version 1.29.0, build 07737305

Laravel Sail, MySql container won't start since version 8.0.23 (8.0.22 works fine)

  • Laravel Version: 8.12
  • sail-8.0/app

Description:

The MySql docker image received an update 17 hours ago. Laravel Sail is unable to start the MySql container, is produces this error:

mysql_1         | 2021-03-18 13:32:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
mysql_1         | 2021-03-18 13:32:56+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD cannot be used for the root user
mysql_1         |     Use one of the following to control the root user password:
mysql_1         |     - MYSQL_ROOT_PASSWORD
mysql_1         |     - MYSQL_ALLOW_EMPTY_PASSWORD
mysql_1         |     - MYSQL_RANDOM_ROOT_PASSWORD

Setting the MySql image to 8.0.22 in docker-compose.yml fixes the issue. First remove installed containers:

sail down --rmi all -v 

Then update docker-compose.yml, and set mysql versions to previous version:

mysql:
        image: 'mysql:8.0.22'

Run Sail again to download images and rebuild the containers

sail up

Steps To Reproduce:

Follow official Sail installation instructions

not installing NodeJS 15.x

  • Sail Version: 1.0.1
  • Laravel Version: 8.12
  • PHP Version: 8.0
  • Database Driver & Version: MySQL 8

Description:

Looking at vendor/laravel/sail/runtimes/8.0/Dockerfile Node 15.x PPA is downloaded but Node v10.x is installed into the container instead of 15.x

Steps To Reproduce:

  1. curl -s https://laravel.build/sample-project | bash
  2. cd sample-project
  3. ./vendor/bin/sail shell
  4. 'node --version`
sail@b137b54a5804:/var/www/html$ node --version
v10.19.0

build script fails when folder path has uppercase letters

  • Sail Version: #.#.#
  • Laravel Version: 8.x
  • PHP Version: 7.4
  • Database Driver & Version:

Description:

Not sure if this is the right repository...this is about the online installer at https://laravel.build to create and run a docker container for a sample Laravel installation. When the absolute path to the folder in which you want to install has uppercase letters, the installation fails with docker: invalid reference format: repository name must be lowercase.

The fix would be on line 11 of the generated shell script to replace pwd with pwd | tr '[:upper:]' '[:lower:]'

Steps To Reproduce:

  • create a folder with 1 or more uppercase letters in the name.
  • from within that folder, run in CLI curl -s "https://laravel.build/example-app" | bash

Ability to specify the document root for the service running in Sail

I ran into an issue with a project that is served using cPanel and the document root is set to the project root and the index.php file is served from there instead of the traditional public folder in the application.

Installing sail works fine, however, I get a 500 error because the path is set to use the public folder. Then when I add the index.php file back to the public folder, all my assets are broken because they are prefixed with public.

My question: is it possible to change the document root for a project to be the project base path instead of the public folder? If not, should this be a feature?

Database user is denied access when parallel testing.

  • Sail Version: 1.5.0
  • Laravel Version: 8.38.0
  • PHP Version: 7.4.16 & 8.0.3
  • Database Driver & Version: mysql:8.0

Description:

Parallel testing has stopped working. The created database user is denied access to drop/create databases.

Steps To Reproduce:

sail test
sail test --parallel

Illuminate\Database\QueryException: SQLSTATE[42000]: Syntax error or access violation: 1044 Access denied for user 'sail'@'%' to database 'new_project_test_1' (SQL: drop database if exists 'new_project_test_1')

I tried with a brand new project, a different computer and with the --recreate-database flag, same outcome.
image

Podman support

Since podman is now docker-compose compatible and the setup for local development as I see it in the docker-compose.yaml is pretty straightforward, there is a high chance that sail will "just run" in rootfull mode on podman and will also work in rootless with slight modifications.

There might be a couple of gotchas for red hat distributions around SELinux and volumes, but isn't going to be much of a problem - just a couple of flags will be needed.

I guess docker is still king, but would help to use a more secure alternative for things that don't really need root.Also, many people using linux are in a Red Hat distribution(Fedora, CentOS, Red Hat), which nowdays are pretty opinionated against using rootfull containers.

Thanks in advance!

Access denied for user 'root'@'localhost'

  • Sail Version: 1.4.12
  • Laravel Version: 8.37.0
  • PHP Version: 8.0.3
  • Database Driver & Version: MySQL 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

Description:

Because I'm working for a company, I'm using Laravel LTS versions since years, but because I have a whole new internal implementation, I started a Laravel 8 project because of the support policy dates. So I also started to use for the first time Laravel Sail that uses Docker for which I have no experience at all, but expected good doc from you guys as usual :)

This said, I found that the doc is oriented for unique website development, leaving me with no out-of-the-box solution for having multiple services communicating between them (I need to dev 2 services that will talk through a third one), so I had to search a solution and finally found that I can update ports for docker, that I'm currently successfully doing by playing with APP_PORT, FORWARD_DB_PORT, FORWARD_REDIS_PORT and my custom FORWARD_MEMCACHED_PORT.

But now, even if in Laravel the database connexion works (I mean php artisan migrate and any Model implementation like User are working), I have a tons of log in Docker that says:

...
mysql_1      | 2021-04-15T06:49:22.601016Z 38 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:49:52.656476Z 39 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:50:22.717978Z 40 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:50:52.768711Z 41 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:51:22.850647Z 42 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:51:52.911610Z 43 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:52:22.987659Z 44 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:52:53.054082Z 45 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:53:23.118966Z 46 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:53:53.184543Z 47 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:54:23.253312Z 48 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:54:53.326102Z 49 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:55:23.407043Z 50 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:55:53.482045Z 51 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:56:23.545310Z 52 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:56:53.607760Z 53 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:57:23.670015Z 54 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:57:53.731421Z 55 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:58:23.787337Z 56 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:58:53.849259Z 57 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:59:23.921320Z 58 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T06:59:53.982199Z 59 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T07:00:24.039189Z 60 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T07:00:54.096518Z 61 [Note] Access denied for user 'root'@'localhost' (using password: NO)
mysql_1      | 2021-04-15T07:01:24.174972Z 62 [Note] Access denied for user 'root'@'localhost' (using password: NO)
...

Currently I booted two new project on monday, and both of them are doing the same.

Steps To Reproduce:

  • I just installed a new Laravel 9 project:
    curl -s "https://laravel.build/example-app?with=mysql,memcached" | bash

  • Then updated my .env to have my new ports for one of my services:

APP_PORT=8002
APP_URL=http://localhost:${APP_PORT}

FORWARD_DB_PORT=8302
FORWARD_REDIS_PORT=8382
FORWARD_MEMCACHED_PORT=8212
  • Leaved the database connexion at the default in .env file:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=sail
DB_PASSWORD=password
  • Touch the service name and mysql version in docker-compose.yml
# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel:
        build:
            context: ./docker/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
    mysql:
        image: 'mysql:5.7'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
        volumes:
            - 'sailmysql:/var/lib/mysql'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "mysqladmin", "ping"]
    memcached:
        image: 'memcached:alpine'
        ports:
            - '${FORWARD_MEMCACHED_PORT:-11211}:11211'
        networks:
            - sail
networks:
    sail:
        driver: bridge
volumes:
    sailmysql:
        driver: local
  • And finally my Dockerfile has nothing touched except this added line for test purposes:
    && apt-get install -y postgresql-client \
    && apt-get install -y iputils-ping \          <--- Added this line
    && apt-get -y autoremove \
  • In the end, I start the project as this and the first Access denied log appears after 30 seconds:
    ./vendor/bin/sail up

Laravel 8 Sail Redis not assuming the default cache driver

  • Laravel Version: 8.38.0
  • PHP Version: 8.0.3
  • Database Driver & Version: N/A
  • Environment: Sail (Docker)

Description:

Laravel 8 and the dev environment is Sail - including Redis. The .env file:

CACHE_DRIVER=redis .. REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379

Using the Redis facade functions, like

Redis::set( 'bar', 'The hole of the moon' );

using redis-cli is possible to find the value stored in cache

but using

Cache::put('bar2', 'baz', 100);
or even

Cache::store('redis')->put('bar3', 'Awesome', 100);

the values cannot be seen using the redis console.

Please note:
dd(env('CACHE_DRIVER'));
shows "redis" .

Steps To Reproduce:

In terminal

docker exec -it laravel_sail-app_redis_1 redis-cli

(after: sail up)
This machine has no local Redis installation, not even MySQL, only PHP- this is a fresh Ubuntu installation . The app is served by Sail / Docker.

Everything stored with Redis facade - replicants of Redis commands - works well.

issue with creating sail account and group in docker build

  • Sail Version: v1.4.12
  • Laravel Version: 8.0
  • PHP Version: 8.0
  • Database Driver & Version: - N/A

Description:

Error occurs when building docker image. Throws this error

ERROR [ 7/12] RUN groupadd --force -g $WWWGROUP sail 0.4s

[ 7/12] RUN groupadd --force -g $WWWGROUP sail:
#10 0.336 groupadd: invalid group ID 'sail'


executor failed running [/bin/sh -c groupadd --force -g $WWWGROUP sail]: exit code: 3
The terminal process "/bin/bash '-c', 'docker build --pull --rm -f "vendor/laravel/sail/runtimes/8.0/Dockerfile" -t vendorportal:latest "vendor/laravel/sail/runtimes/8.0"'" terminated with exit code: 1.

Steps To Reproduce:

run command in terminal
docker build --pull --rm -f "vendor/laravel/sail/runtimes/8.0/Dockerfile" -t vendorportal:latest "vendor/laravel/sail/runtimes/8.0

PHP-FPM for Sail in production

I'm started to use Sail in production and it's great!

But it lacks of one thing – an ability to use PHP-FPM as server instead of php development one (with artisan serve).

Development team, please, update dockers build file to have an ability to work through php-fpm.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.