docker-maven-plugin: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
[INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 26.235 s [INFO] Finished at: 2019-08-12T14:50:22-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.30.0:start (start-docker-containers) on project outbound-messaging-service: Execution start-docker-containers of goal io.fabric8:docker-maven-plugin:0.30.0:start failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.30.0:start: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider [ERROR] ----------------------------------------------------- [ERROR] realm = plugin>io.fabric8:docker-maven-plugin:0.30.0 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/Users/sathishkumarvijayakumar/.m2/repository/io/fabric8/docker-maven-plugin/0.30.0/docker-maven-plugin-0.30.0.jar [ERROR] urls[1] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/httpcomponents/httpclient/4.5.5/httpclient-4.5.5.jar [ERROR] urls[2] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/httpcomponents/httpcore/4.4.9/httpcore-4.4.9.jar [ERROR] urls[3] = file:/Users/sathishkumarvijayakumar/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar [ERROR] urls[4] = file:/Users/sathishkumarvijayakumar/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar [ERROR] urls[5] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-unixsocket/0.22/jnr-unixsocket-0.22.jar [ERROR] urls[6] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-ffi/2.1.9/jnr-ffi-2.1.9.jar [ERROR] urls[7] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jffi/1.2.17/jffi-1.2.17.jar [ERROR] urls[8] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jffi/1.2.16/jffi-1.2.16-native.jar [ERROR] urls[9] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar [ERROR] urls[10] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.jar [ERROR] urls[11] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar [ERROR] urls[12] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar [ERROR] urls[13] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-util/5.0.3/asm-util-5.0.3.jar [ERROR] urls[14] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-a64asm/1.0.0/jnr-a64asm-1.0.0.jar [ERROR] urls[15] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-x86asm/1.0.2/jnr-x86asm-1.0.2.jar [ERROR] urls[16] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-constants/0.9.11/jnr-constants-0.9.11.jar [ERROR] urls[17] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-enxio/0.20/jnr-enxio-0.20.jar [ERROR] urls[18] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-posix/3.0.47/jnr-posix-3.0.47.jar [ERROR] urls[19] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar [ERROR] urls[20] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/commons/commons-text/1.1/commons-text-1.1.jar [ERROR] urls[21] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar [ERROR] urls[22] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.57/bcpkix-jdk15on-1.57.jar [ERROR] urls[23] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.57/bcprov-jdk15on-1.57.jar [ERROR] urls[24] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.jar [ERROR] urls[25] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar [ERROR] urls[26] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar [ERROR] urls[27] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar [ERROR] urls[28] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar [ERROR] urls[29] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar [ERROR] urls[30] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar [ERROR] urls[31] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.0.1/maven-common-artifact-filters-3.0.1.jar [ERROR] urls[32] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar [ERROR] urls[33] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.jar [ERROR] urls[34] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-archiver/3.5/plexus-archiver-3.5.jar [ERROR] urls[35] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/commons/commons-compress/1.14/commons-compress-1.14.jar [ERROR] urls[36] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/iq80/snappy/snappy/0.4/snappy-0.4.jar [ERROR] urls[37] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/tukaani/xz/1.6/xz-1.6.jar [ERROR] urls[38] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/file-management/3.0.0/file-management-3.0.0.jar [ERROR] urls[39] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-shared-io/3.0.0/maven-shared-io-3.0.0.jar [ERROR] urls[40] = file:/Users/sathishkumarvijayakumar/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar [ERROR] urls[41] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.jar [ERROR] urls[42] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar [ERROR] urls[43] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-io/3.0.0/plexus-io-3.0.0.jar [ERROR] urls[44] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/maven-archiver/3.2.0/maven-archiver-3.2.0.jar [ERROR] urls[45] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar [ERROR] urls[46] = file:/Users/sathishkumarvijayakumar/.m2/repository/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar [ERROR] urls[47] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/yaml/snakeyaml/1.18/snakeyaml-1.18.jar [ERROR] urls[48] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/guava/guava/23.0-android/guava-23.0-android.jar [ERROR] urls[49] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar [ERROR] urls[50] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar [ERROR] urls[51] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar [ERROR] urls[52] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar [ERROR] urls[53] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.24/plexus-interpolation-1.24.jar [ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] [ERROR] [ERROR] ----------------------------------------------------- [ERROR] : could not get native definition for type: POINTER: java.lang.UnsatisfiedLinkError: /private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib: dlopen(/private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib, 1): no suitable image found. Did find: [ERROR] /private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib: code signature in (/private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed. [ERROR] at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method) [ERROR] at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430) [ERROR] at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487) [ERROR] at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) [ERROR] at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) [ERROR] at java.base/java.lang.Runtime.load0(Runtime.java:767) [ERROR] at java.base/java.lang.System.load(System.java:1831) [ERROR] at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:376) [ERROR] at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:258) [ERROR] at com.kenai.jffi.internal.StubLoader.<clinit>(StubLoader.java:449) [ERROR] at java.base/java.lang.Class.forName0(Native Method) [ERROR] at java.base/java.lang.Class.forName(Class.java:398) [ERROR] at com.kenai.jffi.Init.load(Init.java:68) [ERROR] at com.kenai.jffi.Foreign$InstanceHolder.getInstanceHolder(Foreign.java:49) [ERROR] at com.kenai.jffi.Foreign$InstanceHolder.<clinit>(Foreign.java:45) [ERROR] at com.kenai.jffi.Foreign.getInstance(Foreign.java:103) [ERROR] at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:242) [ERROR] at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237) [ERROR] at com.kenai.jffi.Type.resolveSize(Type.java:155) [ERROR] at com.kenai.jffi.Type.size(Type.java:138) [ERROR] at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:178) [ERROR] at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48) [ERROR] at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:57) [ERROR] at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:41) [ERROR] at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:53) [ERROR] at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:49) [ERROR] at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29) [ERROR] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [ERROR] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [ERROR] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [ERROR] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) [ERROR] at java.base/java.lang.Class.newInstance(Class.java:584) [ERROR] at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68) [ERROR] at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57) [ERROR] at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35) [ERROR] at jnr.ffi.LibraryLoader.create(LibraryLoader.java:73) [ERROR] at jnr.unixsocket.Native.<clinit>(Native.java:76) [ERROR] at jnr.unixsocket.UnixSocketChannel.<init>(UnixSocketChannel.java:101) [ERROR] at jnr.unixsocket.UnixSocketChannel.open(UnixSocketChannel.java:60) [ERROR] at io.fabric8.maven.docker.access.util.LocalSocketUtil.canConnectUnixSocket(LocalSocketUtil.java:38) [ERROR] at io.fabric8.maven.docker.access.DockerConnectionDetector$UnixSocketDockerHostProvider.getConnectionParameter(DockerConnectionDetector.java:109) [ERROR] at io.fabric8.maven.docker.access.DockerConnectionDetector.detectConnectionParameter(DockerConnectionDetector.java:78) [ERROR] at io.fabric8.maven.docker.service.DockerAccessFactory.createDockerAccess(DockerAccessFactory.java:34) [ERROR] at io.fabric8.maven.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:227) [ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) [ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) [ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) [ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) [ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) [ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) [ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) [ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956) [ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) [ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:192) [ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [ERROR] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:566) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) [ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) [ERROR] -> [Help 1]
Description
Info
- d-m-p version :0.30.0
- Maven version (
mvn -v
) :3.6.1
- Docker version :2.1.0.1
- If it’s a bug, how to reproduce : when running mvn clean verify I get this error
- If it’s a feature request, what is your use case :
- Sample project : [GitHub Clone URL]
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 30 (7 by maintainers)
Commits related to this issue
- chore: Update to jnr-unixsocket 0.38.14 This should fix the UnsatisfiedLinkError on Apple M1 machines. #1257 — committed to henningn/docker-maven-plugin by henningn 3 years ago
- chore: Update to jnr-unixsocket 0.38.14 This should fix the UnsatisfiedLinkError on Apple M1 machines. #1257 — committed to fabric8io/docker-maven-plugin by henningn 3 years ago
- DBZ-5374: docker-maven-plugin needs to be upgraded for Mac Apple M1 Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac ... — committed to HenryCaiHaiying/debezium by HenryCaiHaiying 2 years ago
- DBZ-5374: docker-maven-plugin needs to be upgraded for Mac Apple M1 Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac ... — committed to debezium/debezium by HenryCaiHaiying 2 years ago
- DBZ-5369 docker-maven-plugin needs to be upgraded for Mac Apple M1 Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M... — committed to debezium/debezium by HenryCaiHaiying 2 years ago
- DBZ-5374: docker-maven-plugin needs to be upgraded for Mac Apple M1 Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac ... — committed to MartinMedek/debezium by HenryCaiHaiying 2 years ago
- DBZ-5369 docker-maven-plugin needs to be upgraded for Mac Apple M1 Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M... — committed to matthoward/debezium by HenryCaiHaiying 2 years ago
- Bump docker maven plugin version Getting 'java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider' on Apple M1 Ref: https://github.com/fabric8io/docker-maven-plugi... — committed to renuka-fernando/product-microgateway by renuka-fernando 2 years ago
I’m getting this on Apple M1.
Has anyone else run into this?
This workaround works quite well for now:
Then you can OCI images with Maven
thank you, v0.39.0 solved this issue for me when running it on the M1 👍
Works well with the 0.38.1 version of the fabric8 plugin and M1. Cheers!
@rohanKanojia : Next weekend is fine, thanks.
I was having the same issue with an older version of everything (maven, java, plugin, and docker)… Adding -Ddocker.host=http://127.0.0.1:2375 resolved my issue. Also setting the DOCKER_HOST environment variable to http://127.0.0.1:2375 fixed it.
still seeing this issue. tried 0.41.0, worked fine with 0.40.3
@rohanKanojia : I tested with the latest version of the plugin (0.39.0) and everything works, no problems. Cheers!
You can try a workaround like proxying via
socat
from a TCP port to a Unix socket like described in https://stackoverflow.com/questions/39411126/access-docker-daemon-remote-api-on-docker-for-macHowever, for the full solution, we need support by jnr-unixsocket, so you might want to monitor and popularize https://github.com/jnr/jnr-unixsocket/issues/95 as well.
Setting DOCKER_HOST to http://127.0.0.1:2375 or tcp://127.0.0.1:2375 does not work when you are using Docker Desktop on macOS.
The macOS version of Docker Desktop does not listen on TCP port 2375, so you cannot connect to the Docker engine like this on macOS. See: How do I connect to the remote Docker Engine API? in the Docker documentation, which explains that this is only for the Windows version of Docker Desktop.
On macOS, you are supposed to use the Unix socket, but that does not work either on an Apple Silicon Mac, because that brings you back to square one: it gives you the UnsatisfiedLinkError that this whole issue started with. (Apparently it’s trying to load a dynamic library for which there is no arm64 version available).
It looks like there is currently no way to get fabric8-maven-plugin working on Apple Silicon.
I fixed the issue and it was due to the jdk 11 in my local machine was somehow corrupted. reinstalled jdk11 again after uninstalling and the error went away.