Ik ben een Symfony 4 app aan het migreren naar Docker, maar dit verloopt helaas niet zonder problemen. Ik maak gebruik van de php:7.2-fpm image waarin ik Nodejs en nog een aantal PHP extensions installeer.
In dit bovenstaande deel van de Dockerfile, kopieer ik de source naar de image en installeer ik alle nodige dependencies. Het loopt echter fout bij het laatste stuk waar ik een aantal Symfony console commands wil uitvoeren om assets te installeren.
Bij het uitvoeren van de Symfony console (bin/console), krijg ik volgende foutmelding:
Dit is raar, want na inspectie in de container is te zien dat de App namespace aanwezig is in vendor/composer/autoload_psr4.php, zoals geconfigureerd in composer.json:
Het bin/console bestand is onaagepast en is exact hetzelfde als deze: https://github.com/symfon...y/console/3.3/bin/console. Ook al wordt op regel 12 het autoload bestand geimporteerd, kan de App\Kernel class niet gevonden worden.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| USER tcgcollector WORKDIR /var/www/tcgcollector # Run NPM. COPY --chown=tcgcollector:tcgcollector ./package* ./ RUN npm install && npm cache clean --force # Run Composer. COPY --chown=tcgcollector:tcgcollector ./composer* ./symfony.lock ./ RUN composer install --prefer-dist --optimize-autoloader --classmap-authoritative --no-dev --no-scripts \ && composer clear-cache COPY --chown=tcgcollector:tcgcollector . . # Install assets. ENV APP_ENV=prod RUN php ./bin/console fos:js-routing:dump --format=json --target=./assets/routes.json \ && npm run gulp -- dist \ && php ./bin/console assets:install |
In dit bovenstaande deel van de Dockerfile, kopieer ik de source naar de image en installeer ik alle nodige dependencies. Het loopt echter fout bij het laatste stuk waar ik een aantal Symfony console commands wil uitvoeren om assets te installeren.
Bij het uitvoeren van de Symfony console (bin/console), krijg ik volgende foutmelding:
code:
1
2
3
4
5
6
7
| Step 16/24 : RUN php ./bin/console fos:js-routing:dump --format=json --target=./assets/routes.json && npm run gulp -- dist && php ./bin/console assets:install ---> Running in 447a8150e290 Fatal error: Uncaught Error: Class 'App\Kernel' not found in /var/www/tcgcollector/bin/console:37 Stack trace: #0 {main} thrown in /var/www/tcgcollector/bin/console on line 37 |
Dit is raar, want na inspectie in de container is te zien dat de App namespace aanwezig is in vendor/composer/autoload_psr4.php, zoals geconfigureerd in composer.json:
code:
1
2
3
4
5
| "autoload": { "psr-4": { "App\\": "./src/" } } |
Het bin/console bestand is onaagepast en is exact hetzelfde als deze: https://github.com/symfon...y/console/3.3/bin/console. Ook al wordt op regel 12 het autoload bestand geimporteerd, kan de App\Kernel class niet gevonden worden.
[Voor 6% gewijzigd door egonolieux op 24-10-2018 07:53]