Bamboo Specs repository scan fails with java.io.IOException: No such file or directory when Process Specs in Docker is enabled

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

Bamboo Specs repository scan fails with java.io.IOException: No such file or directory when Process Specs in Docker is enabled.

The following appears when viewing the error log produced by Bamboo Specs from the UI:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Processing Specs within Docker containerUnable to scan repository for Bamboo Specs com.atlassian.bamboo.repository.RepositoryException: Unable to scan repository for Bamboo Specs at com.atlassian.bamboo.configuration.external.RepositoryStoredSpecsServiceImpl.lambda$runSpecsWithDocker$8(RepositoryStoredSpecsServiceImpl.java:739) ... Caused by: com.spotify.docker.client.exceptions.DockerException: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: java.io.IOException: No such file or directory at com.spotify.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:2702) ... Caused by: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: java.io.IOException: No such file or directory at com.spotify.docker.client.shaded.org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:481) at com.spotify.docker.client.shaded.org.glassfish.jersey.apache.connector.ApacheConnector$1.run(ApacheConnector.java:491) ... Caused by: java.io.IOException: No such file or directory at jnr.unixsocket.UnixSocketChannel.doConnect(UnixSocketChannel.java:127) at jnr.unixsocket.UnixSocketChannel.connect(UnixSocketChannel.java:136) at jnr.unixsocket.UnixSocketChannel.connect(UnixSocketChannel.java:223) ...

Cause

The security feature Process Bamboo Specs in Docker is enabled on your instance but Docker is not installed on your Bamboo Server / the Docker socket cannot be found at the default location : /var/run/docker.sock

Workaround

While not recommended, you can disable the security feature at Bamboo Administration >> Security >> Process Bamboo Specs in Docker. Once disabled, Bamboo Specs will no longer attempt to be processed inside a Docker container and will be executed within the Bamboo Server environment instead.

Resolution

Option 1: Install Docker

Install Docker on the Bamboo Server: https://docs.docker.com/install/

Option 2: If your Docker socket is at a non-default location

You can specify the location of the docker socket by setting the environment variable DOCKER_HOST and making it available to the user running your Bamboo Server to the correct path. Bamboo Server will need to be restarted to inherit the new DOCKER_HOST value.

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.