Docker Compose – container receiving connection refused
Using docker-compose, I’m trying to run my API on a publicly available port 8080 and an sqs service on a privately available port 9324. The API needs to be able to communicate with the sqs service. In order to do so, I have set up the following docker-compose.yml:
version: '2' services: api: image: api ports: - "8080:8080" sqs: image: pakohan/elasticmq
I have tried several iterations, including adding a link alias for the api:
links: - "sqs:localhost"
and exposing the port for sqs:
ports: - "9324:9324"
but neither seems to work. The API always gets a connection refused error when trying to communicate with the sqs service.
When the sqs port is publicly exposed an API running outside of docker is able to communicate just fine (so the sqs service is getting initialized properly).
Does anyone have any ideas as to how to solve this problem?
One Solution collect form web for “Docker Compose – container receiving connection refused”
Trying to trick the
api container into connecting to
sqs by telling it that it’s actually connecting to
localhost isn’t going to work. You need to make
sqs available to
api under a name that doesn’t already have a special meaning, like:
links: - sqs:original-name
links: - sqs
sqs accessible to
api under the name “
Then, of course, you need to tell
api that it should connect to port 9324 of
sqs instead of port 9324 of
localhost. How you do that depends on what
api actually is.