When working on GovCMS site uprgade, I found very benefitial to take advantages of some reporting modules from the community. For instance, via installing the Upgrade Status (upgrade_status) module, I can quickly figure out what modules are no longer supported in the newer version of Drupal (and why, see screenshot):

image-20251015115848343

Similarly, if I want to figure out if certain paragraph/modifier is used, I can install Paragraphs Stats (ps) modules and from a glance, figure out the instances a paragraph is getting used, and where exactly (which node) based on its usage report:

2025-10-15T120051

Surprisingly, if you use ahoy cli to start a shell session inside the docker container, and install the modules via composer require <modules_name>, although the modules will be installed in the docker container, verifiable via cd web/modules/contrib && ls -al | grep <module_name>, after enabling it via the drush pm:install <module_name> command, you’ll get error: *Drupal\Core\Extension\Exception\UnknownExtensionException*: The module <module_name> does not exist. in *Drupal\Core\Extension\ExtensionList->get()* (line *266* of *core/lib/Drupal/Core/Extension/ExtensionList.php*).

2025-10-15T120710

To properly install modules you’ll need to modify the <root>/.docker/Docker.cli file, via adding RUN composer .... to install the modules, and run ahoy build && ahoy drush cr after the modification is complete. Below is an example of modification to a <root>/.docker/Docker.cli file:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
##
# @see  https://govcms.gov.au/wiki-advanced#docker
#

ARG CLI_IMAGE
ARG GOVCMS_IMAGE_VERSION=10.x-latest

FROM govcms/govcms:${GOVCMS_IMAGE_VERSION}

+ RUN composer require 'drupal/upgrade_status: ^4.3'
+ RUN composer require 'drupal/ps:^1.0'
+ RUN composer require 'drupal/entity_fields_report:^1.0'
+ RUN composer require 'drupal/content_insights_report:^1.0'
+ RUN composer require 'drupal/webform_analysis:^1.2'
+ RUN composer install

ENV WEBROOT=web

COPY themes/ /app/web/themes/custom
COPY config /app/config

# Default application favicon this will be used for files and server
# error pages all other favicon requests will be surfaced via Drupal.
COPY favicon.ico /app/web