Hi,
Resolved.
I modified the dockerfile like below, now it works:
---------------------
FROM solr:9.8.1
ENV SOLR_HOME_DIR=/opt/solr-9.8.1/server
#COPY ./modules/* $SOLR_HOME_DIR/modules/
WORKDIR /opt/solr-9.8.1
COPY ./server $SOLR_HOME_DIR
COPY ./modules/hybris ./modules/hybris
COPY ./modules/scripting ./modules/scripting
COPY ./modules/analysis-extras ./modules/analysis-extras
ENV SOLR_USER="solr" \
SOLR_UID="8983" \
SOLR_GROUP="solr" \
SOLR_GID="8983" \
PATH="/opt/solr/bin:/opt/solr/docker/scripts:/opt/solr/prometheus-exporter/bin:/opt/solr/cross-dc-manager/bin:$PATH"
\
SOLR_INCLUDE=/etc/default/solr.in.sh \
SOLR_HOME=/var/solr/data \
SOLR_PID_DIR=/var/solr \
SOLR_LOGS_DIR=/var/solr/logs \
LOG4J_PROPS=/var/solr/log4j2.xml \
SOLR_JETTY_HOST="0.0.0.0" \
SOLR_ZK_EMBEDDED_HOST="0.0.0.0"
EXPOSE 8983
WORKDIR /opt/solr-9.8.1
USER $SOLR_UID
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["solr-foreground"]
---------------------
Kind regards
________________________________
Marco Daniele Coppola | SAP Commerce Cloud Engineer
Franke S.p.A. | Via Pignolini 2 | 37019 Peschiera del Garda | Italy
[email protected]<mailto:[email protected]> |
www.franke.com<https://www.franke.com/>
[https://franke.service-now.com/franke_email_sig.png]<https://www.franke.com/>
[https://franke.service-now.com/insta_24.png]<https://instagram.com/franke_group/>
[https://franke.service-now.com/transparent_signature.png]
[https://franke.service-now.com/in_24.png]
<https://linkedin.com/company/franke>
[https://franke.service-now.com/transparent_signature.png]
[https://franke.service-now.com/yt_24.png]
<https://www.youtube.com/c/frankehomesolutions>
[https://franke.service-now.com/transparent_signature.png]
[https://franke.service-now.com/pi_24.png] <https://pinterest.com/FrankeGroup/>
[https://franke.service-now.com/transparent_signature.png]
[https://franke.service-now.com/fb_24.png]
<https://www.facebook.com/FrankeHomeSolutions>
________________________________
From: Jan Høydahl <[email protected]>
Sent: 24 February 2026 16:28
To: [email protected] <[email protected]>
Subject: Re: modules and docker images
Quick tip:
Check out dev-tools/scripts/scaffoldNewModule.py for an idea of what it takes
to add a new module (to src). You probably find some hints on what you need to
add to your custom image to make the module system accept it as a module.
There are also other ways you could copy your custom JARs to Solr's classpath,
which is really what the module config does. Check
dev-docs/plugins-modules-packages.adoc for even more info.
Jan
> 24. feb. 2026 kl. 10:10 skrev MarcoDaniele Coppola
> <[email protected]>:
>
> Hi,
>
> I need to use solr with a custom module and I want running it on docker
> containers (eg image solr:9.8.1).
>
> My idea is extend solr image adding the module and the files (sol.xml,
> schema.xml, solrconfig.xml, stopwords...)
>
> My Dockerfile:
>
> ----------------------------------------------------------------
> FROM solr:9.8.1
>
> ENV SOLR_HOME_DIR=/opt/solr-9.8.1/server
>
> WORKDIR /opt/solr-9.8.1
>
> COPY ./modules/hybris ./modules
> COPY ./server $SOLR_HOME_DIR
>
> EXPOSE 8983
> ----------------------------------------------------------------
>
>
> The build of the image looks fine:
> ----------------------------------------------------------------
> => [internal] load local bake definitions
>
> 0.0s
> => => reading from stdin 996B
>
> 0.0s
> => [solr internal] load build definition from Dockerfile
>
> 0.0s
> => => transferring dockerfile: 315B
>
> 0.0s
> => [hybris internal] load build definition from Dockerfile
>
> 0.0s
> => => transferring dockerfile: 1.16kB
>
> 0.0s
> => [solr internal] load metadata for docker.io/library/solr:9.8.1
>
> 0.0s
> => [hybris internal] load metadata for docker.io/library/sapmachine:17
>
> 0.6s
> => [solr internal] load .dockerignore
>
> 0.0s
> => => transferring context: 2B
>
> 0.0s
> => [solr 1/5] FROM
> docker.io/library/solr:9.8.1@sha256:86a7f3fbec6596b4ee1122b6a862f41eb4b7f41a164abbc169ba9ee03e41525b
>
> 0.0s
> => => resolve
> docker.io/library/solr:9.8.1@sha256:86a7f3fbec6596b4ee1122b6a862f41eb4b7f41a164abbc169ba9ee03e41525b
>
> 0.0s
> => [solr internal] load build context
>
> 0.0s
> => => transferring context: 8.50kB
>
> 0.0s
> => CACHED [solr 2/5] RUN whoami
>
> 0.0s
> => CACHED [solr 3/5] WORKDIR /opt/solr-9.8.1
>
> 0.0s
> => CACHED [solr 4/5] COPY ./modules/hybris ./modules
>
> 0.0s
> => CACHED [solr 5/5] COPY ./server /opt/solr-9.8.1/server
>
> 0.0s
> => [solr] exporting to image
>
> 0.1s
> => => exporting layers
>
> 0.0s
> => => exporting manifest
> sha256:49eea1efe83b2aae428b736058fbe03b2efc0e5edf98c4c5f7bde7acb16eaec2
>
> 0.0s
> => => exporting config
> sha256:e80d1a44c69cf024391d347c3f543c4578d66603a5295cbee61aa9fba79088dd
>
> 0.0s
> => => exporting attestation manifest
> sha256:71400ef4a2fca497ee6831230d4741877165beb5ee005f9b19f2317111162350
>
> 0.0s
> => => exporting manifest list
> sha256:d547a7f8fe5a41733c95c1053a12de3d5cf7954fc7aa546199e801505a989a38
>
> 0.0s
> => => naming to docker.io/library/git-solr:latest
>
> 0.0s
> => => unpacking to docker.io/library/git-solr:latest
>
> 0.0s
> => [solr] resolving provenance for metadata file
>
> 0.0s
> ----------------------------------------------------------------
>
> The issue is that when I start the container, I have an error, it is missing
> the directory of one of the modules
>
> Below the logs of the container start:
> ----------------------------------------------------------------
> Creating solr ... done
> Attaching to solr, hybris
> solr | Starting Solr
> solr | *** [WARN] *** Your open file limit is currently 1024.
> solr | It should be set to 65000 to avoid operational disruption.
> solr | If you no longer wish to see this warning, set
> SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
> solr | Solr will start in SolrCloud mode by default in version 10, and
> you will have to provide --user-managed if you want to stay on the
> user-managed (aka. standalone) mode.
> solr |
> solr | Java 17 detected. Enabled workaround for SOLR-16463
> solr | [0.001s][warning][pagesize] UseLargePages disabled, no large
> pages configured and available on the system.
> solr | CompileCommand: exclude
> com/github/benmanes/caffeine/cache/BoundedLocalCache.put bool exclude = true
> solr | WARNING: A command line option has enabled the Security Manager
> solr | WARNING: The Security Manager is deprecated and will be removed
> in a future release
> solr | 2026-02-23 15:11:46.056 INFO (main) [c: s: r: x: t:]
> o.e.j.s.Server jetty-10.0.22; built: 2024-06-27T16:03:51.502Z; git:
> 5c8471e852d377fd726ad9b1692c35ffc5febb09; jvm 17.0.16+8
> solr | 2026-02-23 15:11:46.561 WARN (main) [c: s: r: x: t:]
> o.e.j.u.DeprecationWarning Using @Deprecated Class
> org.eclipse.jetty.servlet.listener.ELContextCleaner
> solr | 2026-02-23 15:11:46.607 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider Using logger factory
> org.apache.logging.slf4j.Log4jLoggerFactory
> solr | 2026-02-23 15:11:46.621 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider ___ _ Welcome to Apache Solr™
> version 9.8.1
> solr | 2026-02-23 15:11:46.621 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider / __| ___| |_ _ Starting in standalone mode
> on port 8983
> solr | 2026-02-23 15:11:46.621 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider \__ \/ _ \ | '_| Install dir: /opt/solr-9.8.1
> solr | 2026-02-23 15:11:46.622 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider |___/\___/_|_| Start time:
> 2026-02-23T15:11:46.622705288Z
> solr | 2026-02-23 15:11:46.626 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider Solr started with
> "-XX:+CrashOnOutOfMemoryError" that will crash on any OutOfMemoryError
> exception. The cause of the OOME will be logged in the crash file at the
> following path: /var/solr/logs/jvm_crash_14.log
> solr | 2026-02-23 15:11:46.677 INFO (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider Solr Home: /var/solr/data (source: system
> property: solr.solr.home)
> solr | 2026-02-23 15:11:46.740 INFO (main) [c: s: r: x: t:]
> o.a.s.c.SolrXmlConfig solr.xml not found in SOLR_HOME, using built-in default
> solr | 2026-02-23 15:11:46.740 INFO (main) [c: s: r: x: t:]
> o.a.s.c.SolrXmlConfig Loading solr.xml from
> /opt/solr-9.8.1/server/solr/solr.xml
> solr | 2026-02-23 15:11:46.798 INFO (main) [c: s: r: x: t:]
> o.a.s.c.SolrResourceLoader Added 1 libs to classloader, from paths:
> [/opt/solr-9.8.1/lib]
> solr | 2026-02-23 15:11:47.031 INFO (main) [c: s: r: x: t:]
> o.a.s.c.SolrResourceLoader Added 1 libs to classloader, from paths:
> [/opt/solr-9.8.1/modules/scripting/lib]
> solr | 2026-02-23 15:11:47.031 INFO (main) [c: s: r: x: t:]
> o.a.s.c.NodeConfig Added module scripting.
> libPath=/opt/solr-9.8.1/modules/scripting/lib with 1 libs
> solr | 2026-02-23 15:11:47.033 ERROR (main) [c: s: r: x: t:]
> o.a.s.c.NodeConfig No module with name hybris, available modules are
> [cross-dc, hadoop-auth, lib, prometheus-exporter, ltr, llm, extraction,
> s3-repository, analysis-extras, sql, gcs-repository, analytics, scripting,
> jwt-auth, controller-libs, hdfs, jaegertracer-configurator, clustering,
> opentelemetry, langid]
> solr | 2026-02-23 15:11:47.034 ERROR (main) [c: s: r: x: t:]
> o.a.s.s.CoreContainerProvider Could not start Solr. Check solr/home property
> and the logs => org.apache.solr.common.SolrException: No module with name
> hybris
> solr | at
> org.apache.solr.core.NodeConfig.initModules(NodeConfig.java:606)
> solr | org.apache.solr.common.SolrException: No module with name hybris
> solr | at
> org.apache.solr.core.NodeConfig.initModules(NodeConfig.java:606) ~[?:?]
> solr | at
> org.apache.solr.core.NodeConfig.initModules(NodeConfig.java:578) ~[?:?]
> solr | at
> org.apache.solr.core.NodeConfig.<init>(NodeConfig.java:241) ~[?:?]
> solr | at
> org.apache.solr.core.NodeConfig$NodeConfigBuilder.build(NodeConfig.java:999)
> ~[?:?]
> solr | at
> org.apache.solr.core.SolrXmlConfig.fillSolrSection(SolrXmlConfig.java:423)
> ~[?:?]
> solr | at
> org.apache.solr.core.SolrXmlConfig.fromConfig(SolrXmlConfig.java:190) ~[?:?]
> ...
> ----------------------------------------------------------------
>
> I checked the running containers and it looks that the solr.xml (and the
> others file xml files, stopwords...) are copied but the folder of the modules
> (hybris directory) don't is copied.
> What wrong?
>
>
> Kind regards
> Marco
>