Closed dbelyaeff closed 3 years ago
Hi @dbelyaeff. Sail is meant as a development tool and not as a production tool.
sometimes I need testing api some services, and they want https. If you will add nginx + php-fpm will great
But are there know dangers of using Sail in production env?
@dbelyaeff, you can publish and override Dockerfile
and docker-compose.yml
or using traefik
@driesvints: would you answer to above questions, please? specific @alagiesellu question.
@mmdglmr I already answered those. Sail is a development tool, not a production tool.
a very kind & open request...
Accepting that Sail is a development tool, is there a tutorial, howto, dummys guide to transitioning from Sail to production?
I, like many others, have such limited expeience with Docker, we use Sail to develop on. now, once we are in a position to push to production, I for one, have no idea where to start the transition.
do i rip Sail out? do i edit the Sail docker files to include nginx and any other bits needed like ffmpeg, gmp etc?
*is Sail just the CLI part and so not actually part of the docker thing anyways?
Would you or someone who understands please help demistify the process for us. ty.
a very kind & open request...
Accepting that Sail is a development tool, is there a tutorial, howto, dummys guide to transitioning from Sail to production?
I, like many others, have such limited expeience with Docker, we use Sail to develop on. now, once we are in a position to push to production, I for one, have no idea where to start the transition.
do i rip Sail out? do i edit the Sail docker files to include nginx and any other bits needed like ffmpeg, gmp etc?
*is Sail just the CLI part and so not actually part of the docker thing anyways?
Would you or someone who understands please help demistify the process for us. ty.
Sail has nothing to do with the production environment. It uses php artisan serve
command to run the webserver so you can't use Nginx config files.
If you need docker for production you can build your own image. If you don't need it at all, you can use Nginx for production.
The following link documents the needed configurations: https://laravel.com/docs/8.x/deployment
We are currently using sail for development and docker based deployments on Laravel Vapor. We have a requirement for FFMPEG so we've updated our sail container to build FFMPEG. This works well and we have spent a lot of time ironing out issues during development. We also followed the advice at https://blog.laravel.com/vapor-docker-based-deployments to add ffmpeg to our vapor container.
Our problem is that we have different versions of ffmpeg installed on development and on vapor. These version mismatches are causing intermittent errors on staging and production that are extrememly difficult to debug.
We are relatively new to docker and thats why we used Laravel Sail. We chose this as we believed the benefits were that our production, staging and local environments would behave exactly the same.
Some potential options below
If I am missing something please point me in the correct direction to understand my options here.
TIA
Sail really should have an option to convert it to a production-ready container, or at least to publish Sail's dockerfiles or something similar. Making it development-only largely defeats the purpose of having a containerized workflow. One of the key selling-points of containerization is to have consistent and predictable environments. Not giving users the ability to deploy their Sail-based applications directly is a huge miss, imo. Having to essentially roll your own containers for production makes using Sail pointless, since we might as well just use those same containers for development as well.
I found a very amazing tool for Laravel deployment LaraSail
https://github.com/thedevdojo/larasail
Does the work well.
what is the purpose for containerization then :D
I found a very amazing tool for Laravel deployment LaraSail
https://github.com/thedevdojo/larasail
Does the work well.
This is 'DigitalOceon' Specific. May not work for other hosting providers (AWS, Azure, GCP)
Well,
Below could be one of the solution.
1 . Install docker on your hosting machine (aws, azure, gcp, etc...) 2 . go to the root directory of your app 3 . type below command to install software dependencies.
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php81-composer:latest \
composer install --ignore-platform-reqs
4 . make docker container run in the detach mode (sail up -d)
Refer this url for deploying laravel sail over aws,
Laravel offers paid service - Laravel Forge - for serving Laravel applications for production using real webservers. If they would include a sail build-for-production-with-nginx command, and extend the docker setup with Nginx and PHP-FPM, it would kill their business of their paid services...
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.