Connection reset by peer when running docker compose on a pipeline

Hello,

when running a docker compose in a pipeline I’m getting this error when the tests on the pipleine are making use of mycontainer’s API.

panic: Get "http://localhost:8080/api/admin/folder": read tcp 127.0.0.1:60066->127.0.0.1:8080: read: connection reset by peer [recovered]

	panic: Get "http://localhost:8080/api/admin/folder": read tcp 127.0.0.1:60066->127.0.0.1:8080: read: connection reset by peer

This is my docker copose file:

version: "3"

volumes:
  postgres_vol:
    driver: local
    driver_opts:
      o: size=1000m
      device: tmpfs
      type: tmpfs

networks:
  mynetwork:
    driver: bridge

services:
  postgres:
    image: postgres:14
    container_name: postgres
    restart: always
    environment:
      - POSTGRES_USER=xxx
      - POSTGRES_PASSWORD=xxx
      - POSTGRES_DB=newdatabase
    volumes:
      #- ./postgres-init-db.sql:/docker-entrypoint-initdb.d/postgres-init-db.sql
      - "postgres_vol:/var/lib/postgresql/data"
    ports:
      - 5432:5432
    networks:
      - mynetwork

  mycontainer:
    image: myprivaterepo/mycontainer-image:1.0.0
    container_name: mycontainer
    restart: always
    environment:
      - DATABASE_HOST=postgres
      - DATABASE_PORT=5432
      - DATABASE_NAME=newdatabase
      - DATABASE_USERNAME=xxx
      - DATABASE_PASSWORD=xxx
      - DATABASE_SSL=false
    depends_on:
      - postgres
    ports:
      - 8080:8080
    networks:
      - mynetwork

mycontainer is listening on port 8080 and locally everything works fine.

However when I run the pipeline which is initiating this docker compose is where I’m getting the error.

Basically, I’m running some tests in the pipeline that make use of mycontainer API (http://localhost:8080/api/admin/folder).

If I run the docker compose locally and I reproduce the steps followed on my pipeline to make use of the API everything is working fine. I can comunicate locally with both containers through localhost.

Also, I tried using healthchecks on the containers and 127.0.0.1:8080:8080 on mycontainer & 127.0.0.1:5432:5432 in postgres (including 0.0.0.0:8080:8080 & 0.0.0.0:5342:5432 just in case).

Any idea about that?

The issue was related to the cache on the pipeline. After cleaning the cache on the pipeline before running it. It worked fine.