I'm using the `docker` service to perform a docker run command & I am also using the `mysql` service. I can seem to connect to the mysql service from within the docker container. I keep getting "connection refused" any help?
Hey @Jamie Bailey , welcome to the Atlassian Community.
No idea if I get you right here. So within your Pipeline Container (that is also a Docker container) you are running `docker run command-container ...` that should connect to the `mysql` service that is added to the pipeline step?
- docker run command-container ...
The pipeline container (ktomk/pipelines:busybox) can access the services (mysql) via localhost / 127.0.0.1.
This is either also possible for the command-container (use 127.0.0.1 for mysql as "localhost" can cause problems with Mysql) or not. I don't know.
In case it's not, it needs to find it's way through docker networking. So try with "127.0.0.1" and port "3306" first. If that is not possible the other option I know about (details) is to
If you need to communicate from a service running in docker to a service running in your build container, when starting the service provide it the following host entry using --add-host host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL you can then access the service using host.docker.internal:<port>.
this is not exactly your use-case but might give pointers on the networking layout. The post writes that using `--network=host` is not possible any longer, so for the `docker run` command it might still work to add the host hosts.docker.internal as outlined and then the mysql service could be available on host.docker.internal and port 3306.
Forgot to update, I found the solution. So while inside the container I was trying to communicate with the MariaDB/MySQL server using 127.0.0.1 & localhost and this did not work.
To access the host network on BitBucket cloud from within a docker container I used 172.17.0.1
`172.17.0.1` is the default docker-ip. It may change and then it breaks.
Better would be to do the suggested internal host resolution with the Bitbucket Pipelines environment variable:
docker run --add-host host.docker.internal:"$BITBUCKET_DOCKER_HOST_INTERNAL" ...
and then use `host.docker.internal` instead of `172.17.0.1`.
You could also `echo "$BITBUCKET_DOCKER_HOST_INTERNAL"` in a pipeline script line to see what this standard variable contains.
Hi, Bitbucket community! Are you a DevOps practitioner (or know one in your network)? Do you have DevOps tips, tricks, or learnings you'd like to share with the community? If so, we'd love to hea...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events