I am running a Laravel project on Heroku. For running a migration that will change the type of a column I need the doctrine/dbal package installed. I put "doctrine/dbal": "^2.5" line in composer.json in the "require" object.
When I pushed the changes to Heroku it is showing the line.
- Installing doctrine/dbal (v2.5.5)
Downloading: 100%
Right after that when I ran heroku run composer show doctrine/dbal it is showing.
[InvalidArgumentException]
Package doctrine/dbal not found
I also ran heroku run composer update several times after that. Here is the full log of my commands.
C:\xampp\htdocs\jem\red-arrow (master) (red-arrow#0.0.1)
λ heroku run composer update
Running composer update on red-arrow... up, run.9733 (Free)
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing symfony/polyfill-mbstring (v1.2.0)
- Installing symfony/polyfill-mbstring (v1.3.0)
Downloading: 100%
- Removing symfony/var-dumper (v3.1.4)
- Installing symfony/var-dumper (v3.1.8)
Downloading: 100%
- Removing symfony/translation (v3.1.4)
- Installing symfony/translation (v3.1.8)
Downloading: 100%
- Removing symfony/routing (v3.1.4)
- Installing symfony/routing (v3.1.8)
Downloading: 100%
- Removing symfony/process (v3.1.4)
- Installing symfony/process (v3.1.8)
Downloading: 100%
- Removing symfony/http-foundation (v3.1.4)
- Installing symfony/http-foundation (v3.1.8)
Downloading: 100%
- Removing symfony/event-dispatcher (v3.1.4)
- Installing symfony/event-dispatcher (v3.2.1)
Downloading: 100%
- Removing psr/log (1.0.0)
- Installing psr/log (1.0.2)
Downloading: 100%
- Removing symfony/debug (v3.1.4)
- Installing symfony/debug (v3.1.8)
Downloading: 100%
- Removing symfony/http-kernel (v3.1.4)
- Installing symfony/http-kernel (v3.1.8)
Downloading: 100%
- Removing symfony/finder (v3.1.4)
- Installing symfony/finder (v3.1.8)
Downloading: 100%
- Removing symfony/console (v3.1.4)
- Installing symfony/console (v3.1.8)
Downloading: 100%
- Removing swiftmailer/swiftmailer (v5.4.3)
- Installing swiftmailer/swiftmailer (v5.4.4)
Downloading: 100%
- Removing paragonie/random_compat (v2.0.2)
- Installing paragonie/random_compat (v2.0.4)
Downloading: 100%
- Removing ramsey/uuid (3.5.0)
- Installing ramsey/uuid (3.5.2)
Downloading: 100%
- Removing nikic/php-parser (v2.1.1)
- Installing nikic/php-parser (v3.0.2)
Downloading: 100%
- Removing psy/psysh (v0.7.2)
- Installing psy/psysh (v0.8.0)
Downloading: 100%
- Removing monolog/monolog (1.21.0)
- Installing monolog/monolog (1.22.0)
Downloading: 100%
- Removing league/flysystem (1.0.27)
- Installing league/flysystem (1.0.32)
Downloading: 100%
- Removing symfony/polyfill-util (v1.2.0)
- Installing symfony/polyfill-util (v1.3.0)
Downloading: 100%
- Removing symfony/polyfill-php56 (v1.2.0)
- Installing symfony/polyfill-php56 (v1.3.0)
Downloading: 100%
- Removing jeremeamia/superclosure (2.2.0)
- Installing jeremeamia/superclosure (2.3.0)
Downloading: 100%
- Removing classpreloader/classpreloader (3.0.0)
- Installing classpreloader/classpreloader (3.1.0)
Downloading: 100%
- Removing laravel/framework (v5.3.9)
- Installing laravel/framework (v5.3.28)
Downloading: 100%
- Installing doctrine/lexer (v1.0.1)
Downloading: 100%
- Installing doctrine/collections (v1.3.0)
Downloading: 100%
- Installing doctrine/cache (v1.6.1)
Downloading: 100%
- Installing doctrine/annotations (v1.3.0)
Downloading: 100%
- Installing doctrine/common (v2.6.2)
Downloading: 100%
- Installing doctrine/dbal (v2.5.5)
Downloading: 100%
- Installing fzaninotto/faker (v1.6.0)
Downloading: 100%
- Installing hamcrest/hamcrest-php (v1.2.2)
Downloading: 100%
- Installing mockery/mockery (0.9.6)
Downloading: 100%
- Installing symfony/yaml (v3.2.1)
Downloading: 100%
- Installing sebastian/version (2.0.1)
Downloading: 100%
- Installing sebastian/resource-operations (1.0.0)
Downloading: 100%
- Installing sebastian/recursion-context (2.0.0)
Downloading: 100%
- Installing sebastian/object-enumerator (2.0.0)
Downloading: 100%
- Installing sebastian/global-state (1.1.1)
Downloading: 100%
- Installing sebastian/exporter (2.0.0)
Downloading: 100%
- Installing sebastian/environment (2.0.0)
Downloading: 100%
- Installing sebastian/diff (1.4.1)
Downloading: 100%
- Installing sebastian/comparator (1.2.2)
Downloading: 100%
- Installing doctrine/instantiator (1.0.5)
Downloading: 100%
- Installing phpunit/php-text-template (1.2.1)
Downloading: 100%
- Installing phpunit/phpunit-mock-objects (3.4.3)
Downloading: 100%
- Installing phpunit/php-timer (1.0.8)
Downloading: 100%
- Installing phpunit/php-file-iterator (1.4.2)
Downloading: 100%
- Installing sebastian/code-unit-reverse-lookup (1.0.0)
Downloading: 100%
- Installing phpunit/php-token-stream (1.4.9)
Downloading: 100%
- Installing phpunit/php-code-coverage (4.0.3)
Downloading: 100%
- Installing webmozart/assert (1.2.0)
Downloading: 100%
- Installing phpdocumentor/reflection-common (1.0)
Downloading: 100%
- Installing phpdocumentor/type-resolver (0.2.1)
Downloading: 100%
- Installing phpdocumentor/reflection-docblock (3.1.1)
Downloading: 100%
- Installing phpspec/prophecy (v1.6.2)
Downloading: 100%
- Installing myclabs/deep-copy (1.5.5)
Downloading: 100%
- Installing phpunit/phpunit (5.7.4)
Downloading: 100%
- Installing symfony/css-selector (v3.1.8)
Downloading: 100%
- Installing symfony/dom-crawler (v3.1.8)
Downloading: 100%
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.4.0)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
phpunit/phpunit suggests installing ext-xdebug (*)
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled class file has been removed.
C:\xampp\htdocs\jem\red-arrow (master) (red-arrow#0.0.1)
λ heroku run composer show doctrine/dbal
Running composer show doctrine/dbal on red-arrow... up, run.6084 (Free)
[InvalidArgumentException]
Package doctrine/dbal not found
show [--all] [-i|--installed] [-p|--platform] [-a|--available] [-s|--self] [-N|--name-only] [-P|--path] [-t|--tree] [-l|--latest] [-o|--outdated] [-D|--direct] [--] [<package>] [<version>]
Link to the git repo: https://github.com/Jimut/red-arrow
Link to the Heroku app: http://red-arrow.herokuapp.com/
So, the problem was that the composer.lock wasn't updated before I pushed the repo to Heroku.
Heroku only runs composer install after a git push which reads the lock file to install packages. And as pointed out by Chris in the comments
Don't bother running composer update on Heroku. Any changes you make to the local filesystem after your slug is compiled will be lost as soon as your Dyno cycles.
So the best practice is, after editing composer.json in the local file system always run composer update and then git push.
I moved "doctrine/dbal": "^2.5" from "require-dev" to "require" and didn't run composer update before pushing, that was the cause of the problem.
Related
I'm trying to build a deployable image of my laravel app into docker.
Here is my dockerfile:
FROM php:7.1.14-fpm
ENV node_version 8.4.0
ENV npm_version 5.7.1
RUN echo "deb http://ftp.de.debian.org/debian stretch main " >> /etc/apt/sources.list \
&& apt-get update -y && apt-get install -y openssl zip unzip git automake \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
libmagickwand-dev vim --no-install-recommends \
&& apt-get remove -y libgnutls-deb0-28 \
&& apt-get purge --auto-remove -y g++ \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install pdo pdo_mysql mbstring zip -j$(nproc) iconv mcrypt -j$(nproc) gd
WORKDIR /app
COPY . /app
COPY ./entrypoint.sh /tmp
RUN touch ./resources/assets/less/_main_full/main.less \
&& mv ./.env.local ./.env \
&& mv ./.dockerignore-local ./.dockerignore
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& composer install --no-interaction
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash \
&& export NVM_DIR="$HOME/.nvm" \
&& [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" \
&& nvm install ${node_version} \
&& npm install -g npm#${npm_version} \
&& npm install \
&& npm run dev
RUN chown -R www-data:www-data \
/app/storage \
/app/bootstrap/cache \
&& chmod 755 /tmp/entrypoint.sh
CMD ["/tmp/entrypoint.sh"]
In the build logs, I can see composer is invoked and working well.
---> Running in c4eb03cbb690
All settings correct for using Composer
Downloading...
Composer (version 1.6.3) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 121 installs, 0 updates, 0 removals
- Installing symfony/finder (v3.4.4): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.7.0): Downloading (100%)
- Installing symfony/var-dumper (v3.4.4): Downloading (100%)
- Installing psr/log (1.0.2): Downloading (100%)
- Installing maximebf/debugbar (1.13.1): Downloading (100%)
- Installing vlucas/phpdotenv (v2.4.0): Downloading (100%)
- Installing symfony/css-selector (v3.1.10): Downloading (100%)
- Installing tijsverkoyen/css-to-inline-styles (2.2.1): Downloading (100%)
- Installing symfony/routing (v3.4.4): Downloading (100%)
- Installing symfony/process (v3.4.4): Downloading (100%)
- Installing paragonie/random_compat (v2.0.11): Downloading (100%)
- Installing symfony/polyfill-php70 (v1.7.0): Downloading (100%)
- Installing symfony/http-foundation (v3.4.4): Downloading (100%)
- Installing symfony/event-dispatcher (v4.0.4): Downloading (100%)
- Installing symfony/debug (v3.4.4): Downloading (100%)
- Installing symfony/http-kernel (v3.4.4): Downloading (100%)
- Installing symfony/console (v3.4.4): Downloading (100%)
- Installing doctrine/lexer (v1.0.1): Downloading (100%)
- Installing egulias/email-validator (2.1.3): Downloading (100%)
- Installing swiftmailer/swiftmailer (v6.0.2): Downloading (100%)
- Installing ramsey/uuid (3.7.3): Downloading (100%)
- Installing psr/simple-cache (1.0.0): Downloading (100%)
- Installing psr/container (1.0.0): Downloading (100%)
- Installing symfony/translation (v3.4.4): Downloading (100%)
- Installing nesbot/carbon (1.22.1): Downloading (100%)
- Installing mtdowling/cron-expression (v1.2.1): Downloading (100%)
- Installing monolog/monolog (1.23.0): Downloading (100%)
- Installing league/flysystem (1.0.42): Downloading (100%)
- Installing erusev/parsedown (1.6.4): Downloading (100%)
- Installing doctrine/inflector (v1.3.0): Downloading (100%)
- Installing laravel/framework (v5.5.33): Downloading (100%)
- Installing barryvdh/laravel-debugbar (v2.4.3): Downloading (100%)
- Installing symfony/class-loader (v3.4.4): Downloading (100%)
- Installing barryvdh/reflection-docblock (v2.0.4): Downloading (100%)
- Installing barryvdh/laravel-ide-helper (v2.4.1): Downloading (100%)
- Installing knplabs/knp-snappy (v1.0.4): Downloading (100%)
- Installing barryvdh/laravel-snappy (v0.4.0): Downloading (100%)
- Installing cocur/slugify (v2.5): Downloading (100%)
- Installing cviebrock/eloquent-sluggable (4.2.4): Downloading (100%)
- Installing davejamesmiller/laravel-breadcrumbs (3.0.3): Downloading (100%)
- Installing doctrine/annotations (v1.6.0): Downloading (100%)
- Installing doctrine/cache (v1.7.1): Downloading (100%)
- Installing doctrine/collections (v1.5.0): Downloading (100%)
- Installing doctrine/common (v2.7.3): Downloading (100%)
- Installing doctrine/dbal (v2.5.13): Downloading (100%)
- Installing fzaninotto/faker (v1.7.1): Downloading (100%)
- Installing guzzlehttp/promises (v1.3.1): Downloading (100%)
- Installing psr/http-message (1.0.1): Downloading (100%)
- Installing guzzlehttp/psr7 (1.4.2): Downloading (100%)
- Installing lab404/laravel-impersonate (1.2.2): Downloading (100%)
- Installing zendframework/zend-diactoros (1.7.0): Downloading (100%)
- Installing symfony/psr-http-message-bridge (v1.0.2): Downloading (100%)
- Installing phpseclib/phpseclib (2.0.9): Downloading (100%)
- Installing league/event (2.1.2): Downloading (100%)
- Installing lcobucci/jwt (3.2.2): Downloading (100%)
- Installing defuse/php-encryption (v2.1.0): Downloading (100%)
- Installing league/oauth2-server (6.1.1): Downloading (100%)
- Installing guzzlehttp/guzzle (6.3.0): Downloading (100%)
- Installing firebase/php-jwt (v4.0.0): Downloading (100%)
- Installing laravel/passport (v3.0.2): Downloading (100%)
- Installing league/oauth1-client (1.7.0): Downloading (100%)
- Installing laravel/socialite (v3.0.0): Downloading (100%)
- Installing laravelcollective/html (5.5.x-dev 2f6dc39): Downloading (100%)
- Installing intervention/image (2.4.1): Downloading (100%)
- Installing danielstjules/stringy (2.4.0): Downloading (100%)
- Installing laravolt/avatar (1.8.1): Downloading (100%)
- Installing mtdowling/jmespath.php (2.4.0): Downloading (100%)
- Installing aws/aws-sdk-php (3.52.2): Downloading (100%)
- Installing league/flysystem-aws-s3-v3 (1.0.18): Downloading (100%)
- Installing liopic/korean-romanizer (1.0): Downloading (100%)
- Installing phpoffice/phpexcel (1.8.1): Downloading (100%)
- Installing symfony/polyfill-util (v1.7.0): Downloading (100%)
- Installing symfony/polyfill-php56 (v1.7.0): Downloading (100%)
- Installing nikic/php-parser (v3.1.4): Downloading (100%)
- Installing jeremeamia/superclosure (2.3.0): Downloading (100%)
- Installing maatwebsite/excel (2.1.24): Downloading (100%)
- Installing owen-it/laravel-auditing (2.3.7): Downloading (100%)
- Installing proengsoft/laravel-jsvalidation (v1.6.1): Downloading (100%)
- Installing rap2hpoutre/laravel-log-viewer (v0.7.1): Downloading (100%)
- Installing sentry/sentry (1.8.2): Downloading (100%)
- Installing sentry/sentry-laravel (0.3.0): Downloading (100%)
- Installing spatie/db-dumper (1.5.1): Downloading (100%)
- Installing spatie/laravel-backup (3.10.1): Downloading (100%)
- Installing thomaswelton/gravatarlib (0.1.0): Downloading (100%)
- Installing thomaswelton/laravel-gravatar (1.1.3): Downloading (100%)
- Installing torann/geoip (1.0.5): Downloading (100%)
- Installing webpatser/laravel-countries (dev-master 2568394): Downloading (100%)
- Installing kalnoy/nestedset (v4.3.1): Downloading (100%)
- Installing xoco70/laravel-tournaments (dev-master 8c9eac5): Downloading (100%)
- Installing symfony/dom-crawler (v3.1.10): Downloading (100%)
- Installing sebastian/version (2.0.1): Downloading (100%)
- Installing sebastian/resource-operations (1.0.0): Downloading (100%)
- Installing sebastian/recursion-context (3.0.0): Downloading (100%)
- Installing sebastian/object-reflector (1.1.1): Downloading (100%)
- Installing sebastian/object-enumerator (3.0.3): Downloading (100%)
- Installing sebastian/global-state (2.0.0): Downloading (100%)
- Installing sebastian/exporter (3.1.0): Downloading (100%)
- Installing sebastian/environment (3.1.0): Downloading (100%)
- Installing sebastian/diff (2.0.1): Downloading (100%)
- Installing sebastian/comparator (2.1.3): Downloading (100%)
- Installing phpunit/php-text-template (1.2.1): Downloading (100%)
- Installing doctrine/instantiator (1.1.0): Downloading (100%)
- Installing phpunit/phpunit-mock-objects (5.0.6): Downloading (100%)
- Installing phpunit/php-timer (1.0.9): Downloading (100%)
- Installing phpunit/php-file-iterator (1.4.5): Downloading (100%)
- Installing theseer/tokenizer (1.1.0): Downloading (100%)
- Installing sebastian/code-unit-reverse-lookup (1.0.1): Downloading (100%)
- Installing phpunit/php-token-stream (2.0.2): Downloading (100%)
- Installing phpunit/php-code-coverage (5.3.0): Downloading (100%)
- Installing webmozart/assert (1.3.0): Downloading (100%)
- Installing phpdocumentor/reflection-common (1.0.1): Downloading (100%)
- Installing phpdocumentor/type-resolver (0.4.0): Downloading (100%)
- Installing phpdocumentor/reflection-docblock (4.3.0): Downloading (100%)
- Installing phpspec/prophecy (1.7.3): Downloading (100%)
- Installing phar-io/version (1.0.1): Downloading (100%)
- Installing phar-io/manifest (1.0.1): Downloading (100%)
- Installing myclabs/deep-copy (1.7.0): Downloading (100%)
- Installing phpunit/phpunit (6.5.6): Downloading (100%)
- Installing laravel/browser-kit-testing (v2.0.1): Downloading (100%)
- Installing hamcrest/hamcrest-php (v1.2.2): Downloading (100%)
- Installing mockery/mockery (0.9.9): Downloading (100%)
symfony/var-dumper suggests installing ext-intl (To show region name in time zone dump)
symfony/var-dumper suggests installing ext-symfony_debug ()
maximebf/debugbar suggests installing kriswallsmith/assetic (The best way to manage assets)
maximebf/debugbar suggests installing predis/predis (Redis storage)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/routing suggests installing symfony/yaml (For using the YAML loader)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/browser-kit ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
symfony/console suggests installing symfony/lock ()
egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation)
ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator)
ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator)
ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter)
ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).)
ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid)
ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.)
symfony/translation suggests installing symfony/config ()
symfony/translation suggests installing symfony/yaml ()
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage)
league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP 5 applications)
laravel/framework suggests installing ext-pcntl (Required to use all features of the queue worker.)
laravel/framework suggests installing laravel/tinker (Required to use the tinker console command (~1.0).)
laravel/framework suggests installing league/flysystem-cached-adapter (Required to use Flysystem caching (~1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (~1.0).)
laravel/framework suggests installing nexmo/client (Required to use the Nexmo transport (~1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (~3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (~1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (~3.0).)
symfony/class-loader suggests installing symfony/polyfill-apcu (For using ApcClassLoader on HHVM)
barryvdh/reflection-docblock suggests installing dflydev/markdown (~1.0)
knplabs/knp-snappy suggests installing h4cc/wkhtmltoimage-amd64 (Provides wkhtmltoimage-amd64 binary for Linux-compatible machines, use version `~0.12` as dependency)
knplabs/knp-snappy suggests installing h4cc/wkhtmltoimage-i386 (Provides wkhtmltoimage-i386 binary for Linux-compatible machines, use version `~0.12` as dependency)
knplabs/knp-snappy suggests installing h4cc/wkhtmltopdf-amd64 (Provides wkhtmltopdf-amd64 binary for Linux-compatible machines, use version `~0.12` as dependency)
knplabs/knp-snappy suggests installing h4cc/wkhtmltopdf-i386 (Provides wkhtmltopdf-i386 binary for Linux-compatible machines, use version `~0.12` as dependency)
knplabs/knp-snappy suggests installing wemersonjanuario/wkhtmltopdf-windows (Provides wkhtmltopdf executable for Windows, use version `~0.12` as dependency)
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
phpseclib/phpseclib suggests installing ext-libsodium (SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.)
lcobucci/jwt suggests installing mdanter/ecc (Required to use Elliptic Curves based algorithms.)
intervention/image suggests installing ext-imagick (to use Imagick based image processing.)
intervention/image suggests installing intervention/imagecache (Caching extension for the Intervention Image library)
aws/aws-sdk-php suggests installing aws/aws-php-sns-message-validator (To validate incoming SNS notifications)
spatie/laravel-backup suggests installing irazasyed/telegram-bot-sdk (Allows notifications to be sent using Telegram Bot)
spatie/laravel-backup suggests installing maknz/slack (Allows notifications to be sent via Slack)
thomaswelton/gravatarlib suggests installing twig/twig (>=1.4.0)
torann/geoip suggests installing geoip2/geoip2 (Required to use the MaxMind database or web service with GeoIP (~2.1).)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.5)
phpunit/phpunit suggests installing ext-xdebug (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)
Package phpoffice/phpexcel is abandoned, you should avoid using it. Use phpoffice/phpspreadsheet instead.
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize
Removing intermediate container c4eb03cbb690
But when I run docker compose, and connect to my container, I can see there is no vendor/ folder, I have to execute again composer install that load dependencies from cache.
It is to be mentionned that I also have a .dockerignore that has inside vendor/ directory, but as I understand it, .dockerignore should have an effect on the COPY instruction but then, if it is built inside dockerfile, vendor folder should exist...
Why am I wrong ???
Could you share your docker-compose.yml file?
It is very possible that you are creating a shared volume between your host machine and container using docker-compose. Something that looks like this:
services:
app:
build:
context: .
dockerfile: <path-to-your-Dockerfile>
volumes:
- <your-project-path>:/app
Volumes are created after you have built your image and live outside your image/container.
What this means is that the volume you create can potentially overwrite whatever files you have created or installed when building your image.
.dockerignore is solely for loading the build context, and is not applicable when talking about artifacts that are created by the build process. You can and should keep /vendor in your .dockerignore file if you are recreating that folder/running composer each time you build. It is not necessary for Docker to have access to the contents of this folder in order to build your container and including them will just slow down the build.
The reason that you aren't seeing the /vendor folder after the build is finished is this: You are generating the /vendor folder when you do the composer install --no-interaction step which occurs in an intermediate layer (not the final layer). A build step that happens after this is overwriting the folder along with the artifacts that were generated. This can happen even if the composer step is the last item in your Dockerfile if as #nizar-el-berjawi suggests, you are mounting your source folder as a volume in your docker-compose.yml (presumably so you can develop in the container and update source as you go on the host), Docker will run a final mount step that will generate a layer on top of what you have in your Dockerfile. When Docker mounts the source directory, it overwrites the copy that it made during the build with the host source directory that is missing the /vendor sub-directory. Poof!
So to ensure that the /vendor folder is kept in the container, there are several options:
Move the composer install step in your Dockerfile into the final CMD command that specifies what to do when the container loads (and happens after volumes are mapped). Something like:
CMD composer install --no-interaction
&&\ ["/tmp/entrypoint.sh"]
Note that in this scenario, the container build will finish before composer install is complete/done, so if you use docker-compose build up [...etc] to build then your app will not be done building and will not be available until the composer step is complete. You can manually track the composer progress using docker logs on the host machine:
docker logs --follow [image_name/container_id]
To exit the log watcher press the Q key
If you require knowledge of completeness (e.g. for automated testing) this method isn't recommended (use one of the below methods instead)
Don't map your host source volume to the application directory. This will stop Docker from overwriting the folder but changes you make in the container will not propagate to the host. This is fine for a production build. On dev builds where you need to propagate code changes in the container back to the host or vice versa for testing, you can map the folder (use a separate docker-compose.yml file for these build targets). You'll have to run the composer install command manually in the container or on the host using docker exec after the build finishes:
docker exec -it [image_name/container_id] composer install --no-interaction
Move the /vendor folder after the composer step to a location that isn't being used for a volume in docker-compose.yml (e.g. /tmp/vendor ) and copy it back in the CMD section of your Dockerfile so that it is restored from the build whenever the container is (re)started.
RUN mv vendor /tmp/vendor
CMD cp -a /tmp/vendor vendor && ["/tmp/entrypoint.sh"]
The vendor directory is required for autoload application so when you ignore it in .dockerignore, docker COPY could not copy this directory as part of your code base and it caused Internal Server Error.
The good practice might be use pipline cache and artifact between stages and copy source code with vendor directory in Dockerfile.
When i created a project using composer
C:\xampp\htdocs>composer create-project laravel/laravel tipar 5.4.*
Installing laravel/laravel (v5.4.30)
- Installing laravel/laravel (v5.4.30): Loading from cache
Created project in tipar
php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 59 installs, 0 updates, 0 removals
- Installing symfony/css-selector (v3.3.9): Loading from cache
- Installing tijsverkoyen/css-to-inline-styles (2.2.0): Loading from cache
- Installing symfony/polyfill-mbstring (v1.5.0): Loading from cache
- Installing symfony/var-dumper (v3.3.9): Loading from cache
- Installing jakub-onderka/php-console-color (0.1): Loading from cache
- Installing jakub-onderka/php-console-highlighter (v0.3.2): Loading from cache
- Installing dnoegel/php-xdg-base-dir (0.1): Loading from cache
- Installing nikic/php-parser (v3.1.1): Loading from cache
- Installing psr/log (1.0.2): Loading from cache
- Installing symfony/debug (v3.3.9): Downloading (100%)
- Installing symfony/console (v3.3.9): Downloading (100%)
- Installing psy/psysh (v0.8.11): Loading from cache
- Installing vlucas/phpdotenv (v2.4.0): Loading from cache
- Installing symfony/routing (v3.3.9): Loading from cache
- Installing symfony/process (v3.3.9): Loading from cache
- Installing symfony/http-foundation (v3.3.9): Downloading (100%)
this is the only output i get, there are some files that are missing.
So, I'm trying do deploy my Laravel project to Heroku.
In my Vendor folder I have Jeffrey Way's Generators installed [/Vendor/Way]. And it seems like Heroku doesn't have it. I get the following whet I run git push heroku master
Initializing repository, done.
Counting objects: 88, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (73/73), done.
Writing objects: 100% (88/88), 34.47 KiB | 0 bytes/s, done.
Total 88 (delta 4), reused 0 (delta 0)
-----> PHP app detected
-----> No runtime requirements in composer.json, defaulting to PHP 5.6.1.
-----> Installing system packages...
- PHP 5.6.1
- Apache 2.4.10
- Nginx 1.6.0
-----> Installing PHP extensions...
- zend-opcache (automatic; bundled, using 'ext-zend-opcache.ini')
-----> Installing dependencies...
Composer version 73e9db5d9952d52a46ecbc20a269a8c5f9c5b011 2014-10-07 15:03:19
Loading composer repositories with package information
Installing dependencies from lock file
- Installing symfony/translation (v2.5.5)
Downloading: 100%
- Installing symfony/security-core (v2.5.5)
Downloading: 100%
- Installing symfony/routing (v2.5.5)
Downloading: 100%
- Installing symfony/process (v2.5.5)
Downloading: 100%
- Installing symfony/http-foundation (v2.5.5)
Downloading: 100%
- Installing symfony/event-dispatcher (v2.5.5)
Downloading: 100%
- Installing symfony/debug (v2.5.5)
Downloading: 100%
- Installing psr/log (1.0.0)
Downloading: 100%
- Installing symfony/http-kernel (v2.5.5)
Downloading: 100%
- Installing symfony/finder (v2.5.5)
Downloading: 100%
- Installing symfony/dom-crawler (v2.5.5)
Downloading: 100%
- Installing symfony/css-selector (v2.5.5)
Downloading: 100%
- Installing symfony/console (v2.5.5)
Downloading: 100%
- Installing symfony/browser-kit (v2.5.5)
Downloading: 100%
- Installing swiftmailer/swiftmailer (v5.3.0)
Downloading: 100%
- Installing stack/builder (v1.0.2)
Downloading: 100%
- Installing predis/predis (v0.8.7)
Downloading: 100%
- Installing phpseclib/phpseclib (0.3.8)
Downloading: 100%
- Installing patchwork/utf8 (v1.1.25)
Downloading: 100%
- Installing nesbot/carbon (1.13.0)
Downloading: 100%
- Installing monolog/monolog (1.11.0)
Downloading: 100%
- Installing nikic/php-parser (v0.9.5)
Downloading: 100%
- Installing jeremeamia/superclosure (1.0.1)
Downloading: 100%
- Installing ircmaxell/password-compat (1.0.3)
Downloading: 100%
- Installing filp/whoops (1.1.2)
Downloading: 100%
- Installing d11wtq/boris (v1.0.8)
Downloading: 100%
- Installing symfony/filesystem (v2.5.5)
Downloading: 100%
- Installing classpreloader/classpreloader (1.0.2)
Downloading: 100%
- Installing laravel/framework (v4.2.11)
Downloading: 100%
Generating optimized autoload files
PHP Fatal error: Class 'Way\Generators\GeneratorsServiceProvider' not found in /tmp/build_5ed58964-00a1-4095-976d-3975a31d73d8/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Way\\Generators\\GeneratorsServiceProvider' not found","file":"\/tmp\/build_5ed58964-00a1-4095-976d-3975a31d73d8\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/ProviderRepository.php","line":157}}Script php artisan clear-compiled handling the post-install-cmd event returned with an error
[RuntimeException]
Error Output: PHP Fatal error: Class 'Way\Generators\GeneratorsServiceProvider' not found in /tmp/build_5ed58964-00a1-4095-976d-3975a31d73d8/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]
! Push rejected, failed to compile PHP app
To git#heroku.com:tranquil-shore-5073.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git#heroku.com:tranquil-shore-1111.git'
Why does it happens? How can I solve it?
Thanks a lot!
So here is my guide how to do it in Homestead. 1. Open terminal and do $ vagrant ssh 2. Change directory to your project [ex: $ cd Code/webdev.local]3. Run $ composer require way/generators --dev [you can actually skip this step]4. Update your project's composer.json "way/generators" to "dev-master" or "2.*" or "~3.0" - depending on your larval version [ex:
"require-dev": {
"way/generators": "dev-master"
}
]5.Run $composer update 6. Navigate to your project and to app/config/local/app.php (if you don't have local folder - create it and then create app.php which starts like app.php) and set there 'providers'=>array('Way\Generators\GeneratorsServiceProvider'), 7. Run php artisan to check the commands
Worked just fine for me!
I'm using Redis as session driver in Laravel 4.2 stable.
Ever since this morning, after I've got a composer update, the flashdata in sessions are not self-destroying. They are persistent. But if I switch from redis to file session driver, they are working as they should.
These are the updated packages:
composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing symfony/finder (v2.5.3)
- Installing symfony/finder (v2.5.4)
Downloading: 100%
- Removing symfony/translation (v2.5.3)
- Installing symfony/translation (v2.5.4)
Downloading: 100%
- Removing symfony/security-core (v2.5.3)
- Installing symfony/security-core (v2.5.4)
Downloading: 100%
- Removing symfony/routing (v2.5.3)
- Installing symfony/routing (v2.5.4)
Downloading: 100%
- Removing symfony/process (v2.5.3)
- Installing symfony/process (v2.5.4)
Downloading: 100%
- Removing symfony/http-foundation (v2.5.3)
- Installing symfony/http-foundation (v2.5.4)
Downloading: 100%
- Removing symfony/event-dispatcher (v2.5.3)
- Installing symfony/event-dispatcher (v2.5.4)
Loading from cache
- Removing symfony/debug (v2.5.3)
- Installing symfony/debug (v2.5.4)
Loading from cache
- Removing symfony/http-kernel (v2.5.3)
- Installing symfony/http-kernel (v2.5.4)
Downloading: 100%
- Removing symfony/dom-crawler (v2.5.3)
- Installing symfony/dom-crawler (v2.5.4)
Downloading: 100%
- Removing symfony/css-selector (v2.5.3)
- Installing symfony/css-selector (v2.5.4)
Downloading: 100%
- Removing symfony/console (v2.5.3)
- Installing symfony/console (v2.5.4)
Downloading: 100%
- Removing symfony/browser-kit (v2.5.3)
- Installing symfony/browser-kit (v2.5.4)
Loading from cache
- Removing nesbot/carbon (1.11.0)
- Installing nesbot/carbon (1.12.0)
Downloading: 100%
- Removing symfony/filesystem (v2.5.3)
- Installing symfony/filesystem (v2.5.4)
Downloading: 100%
- Removing barryvdh/laravel-debugbar (v1.6.8)
- Installing barryvdh/laravel-debugbar (v1.7.5)
Downloading: 100%
- Removing guzzlehttp/guzzle (4.2.1)
- Installing guzzlehttp/guzzle (4.2.2)
Downloading: 100%
- Removing symfony/class-loader (v2.5.3)
- Installing symfony/class-loader (v2.5.4)
Downloading: 100%
- Removing bkwld/croppa (dev-master 6882599)
- Installing bkwld/croppa (dev-master f38d935)
Downloading: 100%
- Removing way/generators (dev-master 5edee3a)
- Installing way/generators (dev-master 27a8d2e)
Downloading: 100%
Writing lock file
Generating autoload files
Generating optimized class loader
Everything was working okay until the last composer update.
Have anyone else have experienced this? If so, how can I fix this?
Note: changing the cache and session driver to file works as it should, but I need redis.
Thanks in advance,
Just as a reference, It's fixed after a composer update days after. It was possibly a symfony component bug.
I'm working with a project made with Laravel 4 Framework, then I used this command to install the composer.
composer install
This is the execution result:
$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing psr/log (dev-master 5144da9)
Loading from cache
- Installing doctrine/lexer (dev-master 57d5a02)
Loading from cache
- Installing doctrine/annotations (dev-master 97b4a00)
Loading from cache
- Installing doctrine/collections (dev-master bcb5377)
Loading from cache
- Installing doctrine/cache (dev-master ff36d42)
Loading from cache
- Installing doctrine/inflector (dev-master 8b4b3cc)
Loading from cache
- Installing doctrine/common (dev-master ba2ad8a)
Loading from cache
- Installing symfony/process (2.3.x-dev b09d36a)
Loading from cache
- Installing symfony/finder (2.3.x-dev fc0fbd5)
Loading from cache
- Installing symfony/console (2.3.x-dev f77c13a)
Loading from cache
- Installing symfony/filesystem (dev-master c136348)
Loading from cache
- Installing symfony/routing (2.3.x-dev 7d41463)
Loading from cache
- Installing symfony/debug (2.3.x-dev 93f2633)
Loading from cache
- Installing symfony/event-dispatcher (2.3.x-dev 30b2f95)
Loading from cache
- Installing symfony/http-foundation (2.3.x-dev 8ee2965)
Loading from cache
- Installing symfony/http-kernel (2.3.x-dev e6f1920)
Loading from cache
- Installing kriswallsmith/assetic (v1.1.2)
Loading from cache
- Installing codesleeve/sprockets (dev-master 2d14c76)
Loading from cache
- Installing symfony/dom-crawler (2.3.x-dev 7a72398)
Loading from cache
- Installing swiftmailer/swiftmailer (v5.0.3)
Loading from cache
- Installing predis/predis (0.8.x-dev 09cb667)
Loading from cache
- Installing patchwork/utf8 (v1.1.16)
Loading from cache
- Installing nesbot/carbon (1.7.0)
Loading from cache
- Installing monolog/monolog (dev-master 5ad421d)
Loading from cache
- Installing nikic/php-parser (dev-master 0353c92)
Loading from cache
- Installing jeremeamia/superclosure (1.0.1)
Loading from cache
- Installing ircmaxell/password-compat (1.0.x-dev 1fc1521)
Loading from cache
- Installing classpreloader/classpreloader (1.0.1)
Loading from cache
- Installing symfony/translation (2.3.x-dev 6b255d2)
Loading from cache
- Installing symfony/css-selector (2.3.x-dev 8df20c5)
Loading from cache
- Installing symfony/browser-kit (2.3.x-dev 7149642)
Loading from cache
- Installing filp/whoops (1.0.7)
Loading from cache
- Installing doctrine/dbal (2.4.x-dev ad8608b)
Loading from cache
- Installing laravel/framework (4.0.x-dev 426c9e0)
Loading from cache
- Installing leafo/scssphp (v0.0.7)
Loading from cache
- Installing coffeescript/coffeescript (1.3.1)
Loading from cache
- Installing leafo/lessphp (v0.4.0)
Loading from cache
- Installing nitra/php-min (dev-master f2d5e3f)
Loading from cache
- Installing codesleeve/asset-pipeline (dev-master cad206e)
Loading from cache
- Installing mustache/mustache (v2.4.1)
Loading from cache
- Installing way/generators (dev-master 8390ef9)
Downloading: 100%
- Installing barryvdh/laravel-migration-generator (dev-master 5cd7ec3)
Loading from cache
- Installing dinesh/barcode (dev-master 6cbcffb)
Loading from cache
- Installing symfony/class-loader (dev-master d122b8a)
Loading from cache
- Installing dflydev/markdown (dev-master 6baed9b)
Loading from cache
- Installing phpdocumentor/reflection-docblock (2.0.0)
Loading from cache
- Installing barryvdh/laravel-ide-helper (v1.7.1)
Loading from cache
symfony/routing suggests installing symfony/config ()
symfony/routing suggests installing symfony/yaml ()
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
kriswallsmith/assetic suggests installing twig/twig (Assetic provides the integr
ation with the Twig templating engine)
kriswallsmith/assetic suggests installing ptachoire/cssembed (Assetic provides t
he integration with phpcssembed to embed data uris)
kriswallsmith/assetic suggests installing leafo/scssphp-compass (Assetic provide
s the integration with the SCSS compass plugin)
predis/predis suggests installing ext-phpiredis (Allows faster serialization and
deserialization of the Redis protocol)
patchwork/utf8 suggests installing lib-icu (Use Intl for best performance)
monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages
to a GrayLog2 server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an A
MQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a M
ongoDB server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages
to a CouchDB server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a
Sentry server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages
to an Elastic Search server)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages
to AWS services like DynamoDB)
symfony/translation suggests installing symfony/config ()
symfony/translation suggests installing symfony/yaml ()
Writing lock file
Generating autoload files
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","me
ssage":"Class 'Codesleeve\\AssetPipeline\\Filters\\CssRewrite' not found","file"
:"C:\\laravel-projects\\plansherpa\\app\\config\\packages\\codesleeve\\asset-pip
eline\\config.php","line":64}}Script php artisan optimize handling the post-inst
all-cmd event returned with an error
[RuntimeException]
Error Output:
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-p
lugins] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|vv|vvv|--ver
bose] [-o|--optimize-autoloader]
On OSX (Mountain Lion) and Windows 7 Home Premium shows me the same error message. How can I fix it now?
Please help me! Thanks in advance.
Seems like a codesleeve issue not laravel / composer.
Have you previously installed codesleeve?
Try removing that line from the app/config/app.php file
Remove codesleeve from composer.json
Run a composer update. Everything should be working now.
Re-add codesleeve to composer.json
Run another composer update
Re-add the codesleeve service provider to app/config/app.php
Run a composer dump-autoload
See how that goes with each step. I'm assuming the problem will still exist but the first 3-4 steps will be good.
Possibly look into upgrading laravel to 4.1 as I think the new codesleeve requires some stuff from this?
tl:dr its looking for Codesleeve\AssetPipeline\Filters\CssRewrite but cant find it.