0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

docker内でLaravelプロジェクトを作成しようとすると、Install of ライブラリ failedエラー

Last updated at Posted at 2024-08-17

初心者のため、間違いや何かご存じの方がいましたら、教えていただけると助かります。

概要

dockerコンテナ内で、composer create-project laravel/laravel . --prefer-distすると、エラー

環境

windows11
docker-desktop
php: 8.2.7
laravel: v11

エラーメッセージ

以下コード内の
Install of fakerphp/faker failed
Install of voku/portable-ascii failed
Install of symfony/var-dumper failed
Install of symfony/routing failed
Install of symfony/process failed
Install of symfony/polyfill-php72 failed
Install of symfony/polyfill-intl-idn failed

# composer create-project laravel/laravel . --prefer-dist
Creating a "laravel/laravel" project at "./"
Installing laravel/laravel (v11.1.4)
  - Installing laravel/laravel (v11.1.4): Extracting archive
Created project in /var/www/html/.
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 107 installs, 0 updates, 0 removals
  - Locking brick/math (0.12.1)
  - Locking carbonphp/carbon-doctrine-types (3.2.0)
  - Locking dflydev/dot-access-data (v3.0.3)

  ...(省略)
  
  - Installing doctrine/inflector (2.0.10): Extracting archive
  - Installing doctrine/lexer (3.0.1): Extracting archive

  ...(省略)
  
  - Installing myclabs/deep-copy (1.12.0): Extracting archive
  - Installing phpunit/phpunit (11.3.1): Extracting archive
  33/107 [========>-------------------]  30%    Install of fakerphp/faker failed
    Install of voku/portable-ascii failed
    Install of symfony/var-dumper failed
    Install of symfony/routing failed
    Install of symfony/process failed
    Install of symfony/polyfill-php72 failed
    Install of symfony/polyfill-intl-idn failed

In Filesystem.php line 332:
                                                                                                          
  Could not delete /var/www/html/vendor/composer/55e3ab49/FakerPHP-Faker-bfb4fe1/src/Faker/Provide        
  r/ka_GE:                                                                                                
                                                                                                          

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--ask] [--] [<package> [<directory> [<version>]]]

再実行してみると以下。再度/var/www/html/.に当たる部分を削除して実行しても、上記エラーが出る。

# composer create-project laravel/laravel . --prefer-dist
Creating a "laravel/laravel" project at "./"

In CreateProjectCommand.php line 371:
                                                     
  Project directory "/var/www/html/." is not empty.  
                                                     

解決策

1. エラーメッセージが出た後、しばらく待つと、

Could not delete /var/www/html/vendor/composer/55e3ab49/FakerPHP-Faker-bfb4fe1/src/Faker/Provide        
  r/ka_GE:      

と出てきたので、指示されたフォルダを削除

2. その後、再度

composer install

する。
composer installをした後、vendor/composer内のファイルを見ていると、
tmpファイルや英数字8文字のフォルダ(0c04e16など)がまず大量に作成され、その後、installに伴い、tmpファイルなどが処理されていく。
その際処理できなかった(installできなかった)ものがエラーを起こすように見えた。
なので、エラーの後出てくる指示フォルダをちまちま削除し,composer installする。

3. 1に戻って、繰り返す。

以上を数回繰り返すと、徐々にinstallが成功する。
installするライブラリのダウンロードが順調に進む場合と、失敗する場合がある。(理由まではわからず。)
よく引っかかるのはfakerとlaravel/framework。この2つは手動で各サイトからダウンロードして、vendorにコピペしたほうが速いかもしれない。
また、スペックの高いPCだと、成功が速い印象。


※ 以下参考サイトをもとに、

下記コマンドを実行したが、自分の環境では解決されず。

  1. rm -Rf vendor/
  2. rm composer.lock
  3. composer clear-cache
  4. composer install

composerは同じバージョンのライブラリはcacheされてしまうので、何度読み込み直してもcacheが残っていると上手くいかないことが多いらしい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?