Parallel build of docker images with docker-maven-plugin results in "Cannot create docker access object"
- Dominant language
- Java
- Stars
- 3.5k
- Forks
- 250
- Avg merge
- 16h 22m
- Merged PRs (30d)
- 36
Description
When building multiple docker images in parallel on Windows 10 Enterprise with mvnd version 1.0.2 fails, works fine with maven 3.9.8 sequential.
```
[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.35.0:build (install) on project X-docker: Cannot create docker access object : \\.\pipe\docker_engine (All pipe instances are busy) -> [Help 1]
[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.35.0:build (install) on project X-docker: Cannot create docker access object : \\.\pipe\docker_engine (All pipe instances are busy) -> [Help 1]
[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.35.0:build (install) on project X-docker: Cannot create docker access object : \\.\pipe\docker_engine (All pipe instances are busy) -> [Help 1]
```
WSL 2 Windows Docker Current version: 4.32.0 (157355) with Expose daemon on tcp://localhost:2375 without TLS is used in a standard non admin Account
```[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.35.0:build (install) on project X-docker: Cannot create docker access object : \\.\pipe\docker_engine (All pipe instances are busy) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.fabric8:docker-maven-plugin:0.35.0:build (install) on project X-docker: Cannot create docker access object
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:206)
at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:71)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot create docker access object
at io.fabric8.maven.docker.service.DockerAccessFactory.createDockerAccess (DockerAccessFactory.java:43)
at io.fabric8.maven.docker.AbstractDockerMojo.execute (AbstractDockerMojo.java:257)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:206)
at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:71)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: java.io.FileNotFoundException: \\.\pipe\docker_engine (All pipe instances are busy)
at java.io.RandomAccessFile.open0 (Native Method)
at java.io.RandomAccessFile.open (RandomAccessFile.java:345)
at java.io.RandomAccessFile. (RandomAccessFile.java:259)
at java.io.RandomAccessFile. (RandomAccessFile.java:214)
at java.io.RandomAccessFile. (RandomAccessFile.java:127)
at io.fabric8.maven.docker.access.hc.win.NamedPipe.connect (NamedPipe.java:61)
at io.fabric8.maven.docker.access.hc.util.AbstractNativeSocketFactory.connectSocket (AbstractNativeSocketFactory.java:42)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect (DefaultHttpClientConnectionOperator.java:142)
at org.apache.http.impl.conn.BasicHttpClientConnectionManager.connect (BasicHttpClientConnectionManager.java:313)
at org.apache.http.impl.execchain.MainClientExec.establishRoute (MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute (MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute (ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute (RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute (RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:108)
at io.fabric8.maven.docker.access.hc.DockerAccessWithHcClient.fetchApiVersionFromServer (DockerAccessWithHcClient.java:802)
at io.fabric8.maven.docker.access.hc.DockerAccessWithHcClient. (DockerAccessWithHcClient.java:143)
at io.fabric8.maven.docker.service.DockerAccessFactory.createDockerAccess (DockerAccessFactory.java:38)
at io.fabric8.maven.docker.AbstractDockerMojo.execute (AbstractDockerMojo.java:257)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:206)
at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:71)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
```
update: Sometimes there are sporadic runs that succeed fully but most of the time 1-n docker installs just throw pipe instances are busy, and sometimes a
```
Execution install of goal io.fabric8:docker-maven-plugin:0.45.1:build failed: No given, no DOCKER_HOST environment variable, no read/writable '/var/run/docker.sock' or '//./pipe/docker_engine' and no external provider like Docker machine configured
```
If this is more a docker on windows and/or docker-maven-plugin issue feel free to close this
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with DockerAccessFactory.java and the Windows NamedPipe.java stack frames, then inspect AbstractDockerMojo.java and reproduce a parallel mvnd build on Windows with the reported Docker setup. Done means parallel Docker image builds no longer fail with “All pipe instances are busy” or lose Docker host detection; the issue names no test file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java
- Domain
- build-system, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100