In my Node.js project tests I'm starting docker-compose
via child_process.spawn
.
When running CircleCi, the build fails with this error:
Couldn't connect to Docker daemon at http+docker://localhost - is it running?
This is the .circleci/config.yml
:
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/node:8
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
# run tests!
- run: npm test
Solution: There are two possible reasons for this error message. The common reason is that the user you are running the command as does not have the permissions to access docker. and then logging out and logging back in completely (or restarting the system/server).
Is the docker daemon running? This typically indicates that you are running a docker command without using remote docker. In order to run any docker command on CircleCI 2.0 you need to add the setup_remote_docker step as described in the following documentation. You can also use the machine executor.
Just recently ran into this issue, I believe. I think the only thing missing from your setup is setup_remote_docker
before running anything that uses docker-compose
. For example:
working_directory: ~/repo
steps:
# ...
- setup_remote_docker
# run tests!
- run: npm test
Hope this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With