Laravel Sail — файл docker-compose.yml не найден с использованием WSL 2

После успешной работы WSL2 с Docker Desktop (v3.1.0)

 NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

Я выполнил шаги из документации Laravel: https://laravel.com/docs/8.x#getting-started-on-windows, но ошибка:

[ErrorException]
  file_get_contents(): Read of 8192 bytes failed with errno=13 Permission denied

появился, и я также не смог найти файл docker-compose.yml в каталоге после запуска ./vendor/bin/sail up:

ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

person 2nchy    schedule 22.02.2021    source источник
comment
Пожалуйста, поделитесь более подробной информацией - эта ошибка разрешения говорит вам больше? Что вы пытались решить?   -  person Nico Haase    schedule 22.02.2021
comment
@NicoHaase Я пытался решить Read of 8192 bytes failed with errno=13 Permission denied, похоже, это была проблема с Composer, поэтому я обновил его, затем запустил curl -s https://laravel.build/example-app | bash, произошло то же самое. К вашему сведению, это происходит до завершения всего процесса (перед `cd example-app && ./vendor/bin/sail up)   -  person 2nchy    schedule 22.02.2021
comment
Для меня проблема была в нестабильном интернет-соединении. Повторная установка laravel устранила проблему   -  person Musa Haidari    schedule 03.04.2021


Ответы (1)


Вероятно, это проблема с правами доступа Linux. Самый безопасный способ исправить это — chown каталог и сделать его владельцем того же пользователя/группы, под которым запущен процесс php.

Пользователь по умолчанию называется парусом: https://github.com/laravel/sail/blob/1.x/runtimes/8.0/Dockerfile#L46

И группа читается из переменной .env с именем WWWGROUP

Итак, что вам нужно сделать, это открыть консоль WSL2, перейти к вашему проекту. И беги

chown -R sail:<whatever your group from the env is WWWGROUP> .

. означает текущий каталог.

Многие новички сделали бы что-то вроде chmod 777, однако это плохая практика .

person online Thomas    schedule 23.02.2021