Laravel 公式サイトで紹介されていた方法で Laravel Sail をインストールしようとしたところ、エラーが発生して処理が中断したのでその解決方法の備忘録
検証環境
Windows10 Home Edition (version 21H2) VirtualBox 6.1.32 vagrant 2.2.19 # Docker Host OS ubuntu 20.04.3 LTS (Focal Fossa) Docker version 20.10.8, build 3967b7d docker-compose version 1.29.2, build 5becea4c
インストール
発生したエラーについて
下記コマンドでインストールしようとしたところ途中でエラーが発生して中断した
$ curl -s https://laravel.build/example-app | bash
エラーメッセージ
[ErrorException] file_get_contents(/opt/example-app/vendor/symfony/error-handler/Resources/bin/patch-type-declarations): Failed to open stream: No such file or directory
インストールスクリプトの中で laravel new
が使われていて、そこでエラーが発生していた
解決方法
composer
を使ってインストールすることで解決した
$ docker pull composer $ docker run --rm -it --volume $PWD:/app composer create-project laravel/laravel example-app $ cd example-app $ docker run --rm -it --volume $PWD:/app composer require laravel/sail --dev $ docker run --rm -it --volume $PWD:/app composer php artisan sail:install --devcontainer Which services would you like to install? [mysql]: [0] mysql [1] pgsql [2] mariadb [3] redis [4] memcached [5] meilisearch [6] minio [7] mailhog [8] selenium > 0
docker build
発生したエラーについて
インストール完了後、 ./vendor/bin/sail up
でコンテナを起動しようとしたところ下記エラーが発生
E: Problem executing scripts APT::Update::Post-Invoke 'rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true' E: Sub-process returned an error code
Docker イメージのビルド中にエラーが発生していた
解決方法
デフォルトは context
に ./vendor/laravel/sail/runtimes/8.1
が指定されていた
./vendor/laravel/sail/runtimes/8.0
に変更したところ正常にビルドされた
docker-compose.yml
を変更
--- a/docker-compose.yml Sat May 14 18:28:33 2022 +++ b/docker-compose.yml Sat May 14 16:36:36 2022 @@ -3,11 +3,11 @@ services: laravel.test: build: - context: ./vendor/laravel/sail/runtimes/8.1 + context: ./vendor/laravel/sail/runtimes/8.0 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' - image: sail-8.1/app + image: sail-8.0/app extra_hosts: - 'host.docker.internal:host-gateway' ports:
sail build
で再ビルド
$ ./vendor/bin/sail build --no-cache
動作確認
sail up
で起動
$ ./vendor/bin/sail up -d
http://<docker-host-ip>/
を web ブラウザでアクセスして以下の画面が表示されたら成功