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.
Was this helpful?