It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Pipelines: How to connect to a (Postgres) service from within another Docker container

In my pipelines I have defined an external service that runs Postgres:

definitions:
  services:
    db:
      image: postgres
      environment:
        POSTGRES_USER: 'myuser'
        POSTGRES_PASSWORD: 'mypassword'

Now, in my pipeline I need to build my web app from a custom Dockerfile and then test it with the DB. So I define my pipeline step as follows:

pipelines:
default:
- step:
script:
- docker build -t app .
- docker run app ./run_tests.sh
- services:
- db
- docker

I can see that Postgres is listening on port 5432 on the main host (executor), but I can't seem to find a way to connect to it from within my app Docker container.

I also tried to run it with `--network="host"` but this doesn't work due to restrictions in place.

Any ideas? In GitLab this works perfectly. Thanks.

1 answer

0 votes

Hi Jozef,

Try adding a host-to-IP mapping in your "docker run" command, like this:

docker run --add-host host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL app ./run_tests.sh

Then you should be able to connect to the service using host.docker.internal:5432 within the container.

The following blog post explains why this is now needed:

https://community.atlassian.com/t5/Bitbucket-articles/Changes-to-make-your-containers-more-secure-on-Bitbucket/ba-p/998464

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket Pipelines

What We Learned When We Researched Open Source Vulnerabilities in 7 Popular Coding Languages

...hey are a part of us, shaping how we interact with the world around us. The same holds true for programming languages when we think about how different kinds of vulnerabilities raise their heads in t...

1,034 views 0 3
Read article

Community Events

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

Events near you