I've been working on trying to set up a Drupal 10 local development instance on my Windows machine and keep running into an issue of the Drupal installation failing when I have a volume mounted.
Following the instructions given on Using Composer to Install Drupal and Manage Dependencies / Installing with Composer via Docker, I've run docker run --rm -i --tty -v %cd%/drupal:/app/drupal composer create-project drupal/recommended-project drupal --ignore-platform-reqs
.
It shows the following output.
Creating a "drupal/recommended-project" project at "./drupal"
Installing drupal/recommended-project (10.0.9)
- Downloading drupal/recommended-project (10.0.9)
- Installing drupal/recommended-project (10.0.9): Extracting archive Created project in /app/drupal
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Package operations: 54 installs, 0 updates, 0 removals
- Downloading composer/installers (v2.2.0)
- Downloading drupal/core-composer-scaffold (10.0.9)
- Downloading drupal/core-project-message (10.0.9)
- Downloading symfony/polyfill-mbstring (v1.27.0)
- Downloading symfony/polyfill-ctype (v1.27.0)
- Downloading twig/twig (v3.5.1)
- Downloading symfony/yaml (v6.2.10)
- Downloading symfony/var-exporter (v6.2.10)
- Downloading symfony/var-dumper (v6.2.10)
- Downloading symfony/translation-contracts (v3.2.1)
- Downloading symfony/deprecation-contracts (v3.2.1)
- Downloading symfony/validator (v6.2.10)
- Downloading symfony/polyfill-intl-normalizer (v1.27.0)
- Downloading symfony/polyfill-intl-grapheme (v1.27.0)
- Downloading symfony/string (v6.2.8)
- Downloading psr/container (2.0.2)
- Downloading symfony/service-contracts (v3.2.1)
- Downloading symfony/serializer (v6.2.10)
- Downloading symfony/routing (v6.2.8)
- Downloading symfony/http-foundation (v6.2.10)
- Downloading psr/http-message (1.0.1)
- Downloading symfony/psr-http-message-bridge (v2.1.4)
- Downloading symfony/process (v6.2.10)
- Downloading symfony/polyfill-php72 (v1.27.0)
- Downloading symfony/polyfill-intl-idn (v1.27.0)
- Downloading symfony/polyfill-iconv (v1.27.0)
- Downloading symfony/mime (v6.2.10)
- Downloading psr/event-dispatcher (1.0.0)
- Downloading symfony/event-dispatcher-contracts (v3.2.1)
- Downloading symfony/event-dispatcher (v6.2.8)
- Downloading psr/log (3.0.0)
- Downloading symfony/error-handler (v6.2.10)
- Downloading symfony/http-kernel (v6.2.10)
- Downloading symfony/dependency-injection (v6.2.10)
- Downloading symfony/console (v6.2.10)
- Downloading ralouphie/getallheaders (3.0.3)
- Downloading psr/http-factory (1.0.2)
- Downloading psr/http-client (1.0.2)
- Downloading psr/cache (3.0.0)
- Downloading pear/pear_exception (v1.0.2)
- Downloading pear/console_getopt (v1.4.3)
- Downloading pear/pear-core-minimal (v1.10.13)
- Downloading pear/archive_tar (1.4.14)
- Downloading masterminds/html5 (2.7.6)
- Downloading guzzlehttp/psr7 (2.4.5)
- Downloading guzzlehttp/promises (1.5.2)
- Downloading guzzlehttp/guzzle (7.5.1)
- Downloading doctrine/lexer (1.2.3)
- Downloading egulias/email-validator (3.2.5)
- Downloading doctrine/annotations (1.13.3)
- Downloading composer/semver (3.3.2)
- Downloading asm89/stack-cors (v2.1.1)
- Downloading drupal/core (10.0.9)
- Installing composer/installers (v2.2.0): Extracting archive
- Installing drupal/core-composer-scaffold (10.0.9): Extracting archive
- Installing drupal/core-project-message (10.0.9): Extracting archive
- Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.27.0): Extracting archive
- Installing twig/twig (v3.5.1): Extracting archive
- Installing symfony/yaml (v6.2.10): Extracting archive
- Installing symfony/var-exporter (v6.2.10): Extracting archive
- Installing symfony/var-dumper (v6.2.10): Extracting archive
- Installing symfony/translation-contracts (v3.2.1): Extracting archive
- Installing symfony/deprecation-contracts (v3.2.1): Extracting archive
- Installing symfony/validator (v6.2.10): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive
- Installing symfony/string (v6.2.8): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.2.1): Extracting archive
- Installing symfony/serializer (v6.2.10): Extracting archive
- Installing symfony/routing (v6.2.8): Extracting archive
- Installing symfony/http-foundation (v6.2.10): Extracting archive
- Installing psr/http-message (1.0.1): Extracting archive
- Installing symfony/psr-http-message-bridge (v2.1.4): Extracting archive
- Installing symfony/process (v6.2.10): Extracting archive
- Installing symfony/polyfill-php72 (v1.27.0): Extracting archive
- Installing symfony/polyfill-intl-idn (v1.27.0): Extracting archive
- Installing symfony/polyfill-iconv (v1.27.0): Extracting archive
- Installing symfony/mime (v6.2.10): Extracting archive
- Installing psr/event-dispatcher (1.0.0): Extracting archive
- Installing symfony/event-dispatcher-contracts (v3.2.1): Extracting archive
- Installing symfony/event-dispatcher (v6.2.8): Extracting archive
- Installing psr/log (3.0.0): Extracting archive
- Installing symfony/error-handler (v6.2.10): Extracting archive
- Installing symfony/http-kernel (v6.2.10): Extracting archive
- Installing symfony/dependency-injection (v6.2.10): Extracting archive
- Installing symfony/console (v6.2.10): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting archive
- Installing psr/http-factory (1.0.2): Extracting archive
- Installing psr/http-client (1.0.2): Extracting archive
- Installing psr/cache (3.0.0): Extracting archive
- Installing pear/pear_exception (v1.0.2): Extracting archive
- Installing pear/console_getopt (v1.4.3): Extracting archive
- Installing pear/pear-core-minimal (v1.10.13): Extracting archive
- Installing pear/archive_tar (1.4.14): Extracting archive
- Installing masterminds/html5 (2.7.6): Extracting archive
- Installing guzzlehttp/psr7 (2.4.5): Extracting archive
- Installing guzzlehttp/promises (1.5.2): Extracting archive
- Installing guzzlehttp/guzzle (7.5.1): Extracting archive
- Installing doctrine/lexer (1.2.3): Extracting archive
- Installing egulias/email-validator (3.2.5): Extracting archive
- Installing doctrine/annotations (1.13.3): Extracting archive
- Installing composer/semver (3.3.2): Extracting archive
- Installing asm89/stack-cors (v2.1.1): Extracting archive
- Installing drupal/core (10.0.9): Extracting archive
- Installing drupal/core-recommended (10.0.9)
49/50 [===========================>] 98% Install of drupal/core failed
The following exception is caused by a process timeout
Check https://getcomposer.org/doc/06-config.md#process-timeout for details
In Process.php line 1204:
The process "'/usr/bin/unzip' -qq '/app/drupal/vendor/composer/tmp-474185fb585211701bb055d78240c392' -d '/app/drupal/vendor/composer/020e9631'" exceeded the timeout of 300 seconds.
I can see that the issue is that there is a time-out, and I can resolve the issue by setting the COMPOSER_PROCESS_TIMEOUT environment variable > 300 seconds. However, when I do not mount a volume the installation has no issue.
Environment Information
- Windows 10 Enterprise 22H2 19045.2965
- Docker version 24.0.2, build cb74dfc
- Composer version 2.5.8 2023-06-09 17:13:21