Skip to content

Buildpack support for Laravel 8 #366

@peco8

Description

@peco8

Hello, I'm trying to build Llaravel 8 with php buildpacks. Here is the step.

  1. Create Laravel 8 project
composer create-project --no-cache --prefer-dist "laravel/laravel:8.0" laravel
  1. Add the following buildpack.yml
---
composer:
  vendor_directory: vendor
php:
  version: 7.4.*
  webdirectory: public
  1. Build the container image
pack build --clear-cache -b gcr.io/paketo-buildpacks/php laravel-8 --builder paketobuildpacks/builder:full
  1. Run the new image
docker run --interactive --tty --env PORT=8080 --publish 8080:8080 laravel-8

Here is the log when I acess localhsot:8080

[Sat Apr 24 04:25:07 2021] 172.17.0.1:60712 [500]: GET / - Uncaught ReflectionException: Class App\Http\Kernel does not exist in /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/laravel/framework/src/Illuminate/Container/Container.php:833
Stack trace:
#0 /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/laravel/framework/src/Illuminate/Container/Container.php(833): ReflectionClass->__construct('App\\Http\\Kernel')
#1 /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/laravel/framework/src/Illuminate/Container/Container.php(714): Illuminate\Container\Container->build('App\\Http\\Kernel')
#2 /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(841): Illuminate\Container\Container->resolve('App\\Http\\Kernel', Array, false)
#3 /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/laravel/framework/src/Illuminate/Container/Container.php(284): Illuminate\Foundation\Application->resolve('App\\Http\\Kernel', Array, false)
#4 /layers/ in /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 835
[Sat Apr 24 04:25:07 2021] 172.17.0.1:60712 Closing

If my understanding is correct this problem is caused by creating a symlink of the vendor directory during the build process and ends up with autoloading failure. It would be great if you can look into this.

cnb@39425bd1d4ab:/workspace$ ll
total 352
drwxr-xr-x 12 cnb  cnb    4096 Jan  1  1980 ./
drwxr-xr-x  1 root root   4096 Apr 24 04:25 ../
-rw-r--r--  1 cnb  cnb     220 Jan  1  1980 .editorconfig
-rw-r--r--  1 cnb  cnb     829 Jan  1  1980 .env
-rw-r--r--  1 cnb  cnb     778 Jan  1  1980 .env.example
-rw-r--r--  1 cnb  cnb     111 Jan  1  1980 .gitattributes
-rw-r--r--  1 cnb  cnb     163 Jan  1  1980 .gitignore
drwxr-xr-x  2 cnb  cnb    4096 Jan  1  1980 .php.ini.d/
-rw-r--r--  1 cnb  cnb     174 Jan  1  1980 .styleci.yml
-rw-r--r--  1 cnb  cnb    3738 Jan  1  1980 README.md
drwxr-xr-x  7 cnb  cnb    4096 Jan  1  1980 app/
-rwxr-xr-x  1 cnb  cnb    1686 Jan  1  1980 artisan*
drwxr-xr-x  3 cnb  cnb    4096 Jan  1  1980 bootstrap/
-rw-r--r--  1 cnb  cnb      86 Jan  1  1980 buildpack.yml
-rw-r--r--  1 cnb  cnb    1608 Jan  1  1980 composer.json
-rw-r--r--  1 cnb  cnb  246768 Jan  1  1980 composer.lock
drwxr-xr-x  2 cnb  cnb    4096 Jan  1  1980 config/
drwxr-xr-x  5 cnb  cnb    4096 Jan  1  1980 database/
-rw-r--r--  1 cnb  cnb     974 Jan  1  1980 package.json
-rw-r--r--  1 cnb  cnb    1202 Jan  1  1980 phpunit.xml
drwxr-xr-x  2 cnb  cnb    4096 Jan  1  1980 public/
drwxr-xr-x  6 cnb  cnb    4096 Jan  1  1980 resources/
drwxr-xr-x  2 cnb  cnb    4096 Jan  1  1980 routes/
-rw-r--r--  1 cnb  cnb     563 Jan  1  1980 server.php
drwxr-xr-x  5 cnb  cnb    4096 Jan  1  1980 storage/
drwxr-xr-x  4 cnb  cnb    4096 Jan  1  1980 tests/
lrwxrwxrwx  1 cnb  cnb      67 Jan  1  1980 vendor -> /layers/paketo-buildpacks_php-composer/php-composer-packages/vendor/
-rw-r--r--  1 cnb  cnb     559 Jan  1  1980 webpack.mix.js

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions