Зачем заходить в докер контейнер, чтобы создать новый файл Laravel
Я использую Docker и Laravel, для того чтобы создать новый файл, я захожу в контейнер и прописываю допустим команду для создания контроллера. Но не особо понимаю почему бы это(прописать команду создания контроллера) не сделать сразу на локальной машине, так как через volume в любом случае они отобразятся и в контейнер, но советуют это делать именно заходя контейнера. На первом скрине выполняю эту команду внутри контейнера, на втором на локальной машине - эффект один и тот же, зачем тогда заходить в контейнер?
P.S Докер работает с правами USER 1000:1000
Ответы (1 шт):
что вы собственно делаете командой php artisan. В корневой директории проекта находится исполняющий файл artisan
#!/usr/bin/env php
<?php
use Symfony\Component\Console\Input\ArgvInput;
define('LARAVEL_START', microtime(true));
// Register the Composer autoloader...
require __DIR__.'/vendor/autoload.php';
// Bootstrap Laravel and handle the command...
$status = (require_once __DIR__.'/bootstrap/app.php')
->handleCommand(new ArgvInput);
exit($status);
Файл artisan начинается с shebang строки #!/usr/bin/env php, что указывает системе использовать PHP-интерпретатор для его запуска. Это позволяет вам выполнять команду просто как ./artisan, если у файла установлены права на исполнение.
- Подключение автозагрузчика Composer:
- Инициализация приложения Laravel
- Обработка консольной команды
он запускает php скрипт, поднимает bootstrap и принимает аргумент консольной команды.
Для того что бы запустить его нужен PHP, вы можете запустить его в любой среде где установлен php . В вашем случае вы заходите в Контейнер, где он установлен, но вы можете запускать его на вашей машине, если на ней установлен php (не входя в контейнер) , поскольку у вас в docker-compose прописан volumes
c пробросом директории, то эти изменения так же будут в вашем контейнере