Keeping Composer changes in the official drupal Docker image
Mounting only the web root loses vendor/ and composer.lock when the container is recreated. Persist the whole /opt/drupal project, add a Drush wrapper, tune PHP with an ini file, and move credentials out of settings.php.