Home > database >  Docker compose read connection reset by peer error on pipeline
Docker compose read connection reset by peer error on pipeline

Time:10-13

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?

CodePudding user response:

I was able to reproduce your error in a pipeline.

Make sure that you are not catching anything (e.g the code that's interacting with your container's API).

You did not mention anything related to your pipeline but just in case, delete the catching on your pipeline.

  • Related