Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

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

"Could not resolve host: couchdb" in docker-compose

I have a docker-compose.yml that contains a few machines:

  • hat (my python+react app)
  • db (postgresql)
  • couchdb
  • redis

My bitbucket pipelines is:

image: python:3.6
options:
docker: true
pipelines:
default:
- step:
script:
- curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
- docker-compose build
- PGDATA=./pgdata docker-compose up -d db couchdb redis
- PGDATA=./pgdata docker-compose run hat test_python
services:
- docker
caches:
- docker
definitions:
services:
docker:
memory: 2048

 

PGDATA is overriding the volume path that is usually ../pgdata (forbidden in bitbucket, obviously)

Since hat depends on the others, I only added the docker-compose up to check why it was failing.

When I run these commands locally on my mac, no problem, everything runs smoothly. When I run it in pipelines, the "run hat test_python" starts with a wait_for_dbs.sh:

#!/bin/bash
set -e

# Simple script to wait for DBs to have been started

until psql -h "db" -U "postgres" -c '\l' > /dev/null; do
>&2 echo "Waiting for postgres..."
sleep 1
done

until curl -s "http://couchdb:5984" > /dev/null; do
>&2 echo "Waiting for couchdb..."
sleep 1
done

The psql part works fine but the curl thing loops forever. If I remove the -s, I get:

Screen Shot 2019-04-05 at 10.59.21.png

My docker-compose was using links and someone suggested to switch to networks. Didn't change anything.

I don't have a clue what could be making the Bitbucket Pipelines differ from what I have nor how to investigate. Any suggestion ?

1 answer

0 votes

Hi @Eric Darchis

What do you get when you try to run the below command?

curl -s "http://couchdb:5984" > /dev/null

According to the log messages you shared it seems that the curl command is not able to resolve the couchdb host. It curl is not able to translate that name into an IP it will never be able to see if the service is up or not.

Does it make sense to you?

Are you able to run a test with an IP for that, to check if this is the issue?

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,060 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