You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since the upgrade to testcontainer 1.19.2+ the following exception is displayed when running testcontainer from a groovy-maven-plugin script: java.lang.ClassNotFoundException: org.testcontainers.shaded.com.github.dockerjava.core.command.KillContainerCmdImpl.
Here is a POM that can be used to reproduce the issue:
Prior to that version (1.19.1 or below) there was no exception.
Note that this has no consequence on the good execution of the script.
Relevant log output
$ mvn -v
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /home/marc.wrobel/.asdf/installs/maven/3.8.8
Java version: 17.0.9, vendor: Eclipse Adoptium, runtime: /home/marc.wrobel/.asdf/installs/java/temurin-17.0.9+9
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "6.2.0-37-generic", arch: "amd64", family: "unix"
$ mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------------< test:test >------------------------------
[INFO] Building test 1
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- groovy-maven-plugin:2.1.1:execute (start-postgresql) @ test ---
[INFO] Image pull policy will be performed by: DefaultPullPolicy()
[INFO] Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
[INFO] Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
[INFO] Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
[INFO] Docker host IP address is localhost
[INFO] Connected to docker:
Server Version: 23.0.3
API Version: 1.42
Operating System: Ubuntu 22.04.3 LTS
Total Memory: 31715 MB
[INFO] Creating container for image: testcontainers/ryuk:0.5.1
[INFO] Container testcontainers/ryuk:0.5.1 is starting: 3f095f91e01630b54eeb1c6d1ad900c7ba223403e351cad70256e90674a225d2
[INFO] Container testcontainers/ryuk:0.5.1 started in PT0.486840699S
[INFO] Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
[INFO] Checking the system...
[INFO] ✔︎ Docker server version should be at least 1.6.0
[INFO] Creating container for image: postgres:14-alpine
[INFO] Container postgres:14-alpine is starting: 16d35131866ba24f1156a07084b3be407271d94472ea307174f36f2bfdadd31b
[INFO] Container postgres:14-alpine started in PT1.505378691S
[INFO] Container is started (JDBC URL: jdbc:postgresql://localhost:32836/test?loggerLevel=OFF)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ test ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /tmp/toto/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ test ---
[INFO] No sources to compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.427 s
[INFO] Finished at: 2023-12-11T11:24:17+01:00
[INFO] ------------------------------------------------------------------------
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/testcontainers/shaded/com/github/dockerjava/core/command/KillContainerCmdImpl
at org.testcontainers.shaded.com.github.dockerjava.core.DockerClientImpl.killContainerCmd(DockerClientImpl.java:473)
at com.github.dockerjava.api.DockerClientDelegate.killContainerCmd(DockerClientDelegate.java:280)
at com.github.dockerjava.api.DockerClientDelegate.killContainerCmd(DockerClientDelegate.java:280)
at org.testcontainers.utility.RyukResourceReaper.lambda$maybeStart$0(RyukResourceReaper.java:86)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.ClassNotFoundException: org.testcontainers.shaded.com.github.dockerjava.core.command.KillContainerCmdImpl
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 5 more
As a quick and dirty workaround I was able to use testcontainers in a groovy-maven-plugin script by pre-loading the classes into the correct classloader using the following to lines at the beginning of my script:
// very dirty hack to pre-load class to fix class loading issueClass.forName("org.testcontainers.shaded.com.github.dockerjava.core.command.KillContainerCmdImpl")
Class.forName("org.testcontainers.shaded.com.github.dockerjava.core.exec.KillContainerCmdExec")
Module
Core
Testcontainers version
1.19.3
Using the latest Testcontainers version?
Yes
Host OS
Linux
Host Arch
x86
Docker version
Client: Docker Engine - Community Version: 23.0.3 API version: 1.42 Go version: go1.19.7 Git commit: 3e7cbfd Built: Tue Apr 4 22:05:48 2023 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 23.0.3 API version: 1.42 (minimum version 1.12) Go version: go1.19.7 Git commit: 59118bf Built: Tue Apr 4 22:05:48 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.20 GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38 runc: Version: 1.1.5 GitCommit: v1.1.5-0-gf19387a docker-init: Version: 0.19.0 GitCommit: de40ad0
What happened?
Since the upgrade to testcontainer 1.19.2+ the following exception is displayed when running testcontainer from a groovy-maven-plugin script:
java.lang.ClassNotFoundException: org.testcontainers.shaded.com.github.dockerjava.core.command.KillContainerCmdImpl
.Here is a POM that can be used to reproduce the issue:
Prior to that version (1.19.1 or below) there was no exception.
Note that this has no consequence on the good execution of the script.
Relevant log output
Additional Information
It is probable that this is caused by : #7717.
The text was updated successfully, but these errors were encountered: