Error: connect ECONNREFUSED 0.0.0.0:8000 when making call form one container to another

  docker, javascript, python

I have very simple django rest app and cucumber tests (written on JS) which has to test the rest endpoints. I’m trying to create container for rest app and when it is running, I want to create another container for the tests which has to make calls the the rest ednpoints (running from the first container) but then I getting this error connect ECONNREFUSED 0.0.0.0:8000 for each test. Here is my Dockerfile for rest app

FROM python:3.8
ENV PYTHONUNBUFFERED=1
RUN mkdir -p /app/src
WORKDIR /app/src
COPY requirements.txt /app/src
RUN pip install -r requirements.txt
EXPOSE 8000
COPY . /app/src 

And here is my cucumber test Dockerfile

FROM node:12
WORKDIR /app/src
COPY package*.json ./
RUN npm install
COPY . .
CMD ["yarn", "cucumber-drf"]

Here is my Docker-compose file

version: "3.8"
services:
  test:
    build: ./cucumber_drf_tests
    image: cucumber_test
    container_name: cucumber_container
    ports:
      - 8001:8000
    depends_on:
      - app
  app:
    build: .
    image: app:django
    container_name: django_rest_container
    ports:
      - 8000:8000
    expose:
      - 8000
    volumes:
    - .:/django #describes a folder that resides on our OS within the container
    command: >
      bash -c "python manage.py migrate
      && python manage.py loaddata ./project_apps/fixtures/dummy_data.json
      && python manage.py runserver 0.0.0.0:8000"
    depends_on:
      - db
  db:
    image: postgres
    container_name: postgres_db
    ports:
      - 5432:5432
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

And i give example with one of my test calls

When('I sent a get request to {string}', async function (path) {
this.res = await axiosInst.get('http://app:8000', config.user);
this.getUserData = this.res.data;

});

But for some unknown reason it is trying to connect to 0.0.0.0:8000. If I run the tests locally they pass. Please help!

Source: Docker Questions

LEAVE A COMMENT