Host not yet available error during multi container as docker service

Runing docker services as multi container in gitlab for integration testing, getting postgresql host not yet available and timeout/inavlid argument for baseurl.
Image is working as expected during docker-compose but then failing to establish the communication between them when used as services in gitlab job.

my docker-compose yml********
version: ‘2.1’

services:
db:
image: intland/postgres:debian-12.6.3
container_name: db
environment:
- POSTGRESQL_USER=user
- POSTGRESQL_PASSWORD=password
- POSTGRESQL_DATABASE=codebeamer
- TZ=UTC
# ports:
# - 5432:5432
volumes:
- db-data:/var/lib/postgresql/data
networks:
- mynet

app:
build:
context: …/
dockerfile: ./Dockerfile
expose:
- “80”
container_name: app
ports:
- “8080:80”
# - “7896:7896”
environment:
- WAIT_HOSTS=db:5432
- WAIT_HOSTS_TIMEOUT=120
- CB_database_JDBC_Username=user
- CB_database_JDBC_Password=password
- CB_database_JDBC_Driver=org.postgresql.Driver
- CB_database_JDBC_ConnectionURL=jdbc:postgresql://db:5432/codebeamer
# make this the one you have a license for (the license must be for this mac address preceded by “LIN-”) # 6 & 7 in the end have expired trial license :slight_smile:
- DEBUG=TRUE
volumes:
- app-repository-docs:/home/appuser/codebeamer/repository/docs
- app-repository-search:/home/appuser/codebeamer/repository/search
- app-logs:/home/appuser/codebeamer/logs
depends_on:
- db
networks:
- mynet
networks:
mynet:
driver: bridge

volumes:
db-data:
app-repository-docs:
app-repository-search:
app-logs:

gitlab job***

test:int:
stage: test
image: docker-cache.repository.intranet.xxx.com/maven-chrome:jdk-
tags:
- linux
- on-prem
- amd64
- docker
variables:
# # postgres db service vars
POSTGRESQL_USER: user
POSTGRESQL_PASSWORD: password
POSTGRESQL_DATABASE: codebeamer
POSTGRESQL_HOST_AUTH_METHOD: trust
WAIT_HOSTS: “db:5432”
services:
- name: intland/postgres:debian-12.6.3
alias: db
- name: $CI_REGISTRY/$CI_PROJECT_PATH:testing
alias: app

@myaylaci could you please share your suggestion on this issue?

Please format your post according How to format your forum posts, so it’s not unnecessary hard to read.

Here is my Dockerfile:

FROM intland/codebeamer:2.0.0.1
ADD ./deployment_docker.tar codebeamer/tomcat/webapps/ROOT

And my docker-compose.yaml file:

version: '2.1'

services:
  db:
    image: intland/postgres:debian-12.6.3
    container_name: db
    environment:
      - POSTGRESQL_USER=user
      - POSTGRESQL_PASSWORD=password
      - POSTGRESQL_DATABASE=codebeamer
      - TZ=UTC
    # ports:
    #   - 5432:5432
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - mynet

  retina-app:
    build:
      context: ../
      dockerfile: ./Dockerfile
    expose:
      - "8080"  
    container_name: retina-app    
    ports:
      - "8080:8080"
    #      - "7896:7896"
    environment:
      - WAIT_HOSTS=db:5432
      - WAIT_HOSTS_TIMEOUT=120
      - CB_database_JDBC_Username=user
      - CB_database_JDBC_Password=password
      - CB_database_JDBC_Driver=org.postgresql.Driver
      - CB_database_JDBC_ConnectionURL=jdbc:postgresql://db:5432/codebeamer
      # make this the one you have a license for (the license must be for this mac address preceded by "LIN-") # 6 & 7 in the end have expired trial license :)
      - DEBUG=TRUE
    volumes:
      - app-repository-docs:/home/appuser/codebeamer/repository/docs
      - app-repository-search:/home/appuser/codebeamer/repository/search
      - app-logs:/home/appuser/codebeamer/logs
    depends_on:
      - db
    networks:
      - mynet
networks:
  mynet:
    driver: bridge
    ipam:
      driver: default
volumes:
  db-data:
  app-repository-docs:
  repository-search:
  app-logs:

Here is my gitlab job which uses the above pushed images from CI registry as services.

*.gitlab-ci.yml

test:int
  stage: test
  image: docker-cache.repository.intranet.xxx.com/markhobson/maven-chrome:jdk-8

  variables:
    # # postgres db service vars
    POSTGRESQL_USER: user
    POSTGRESQL_PASSWORD: password
    POSTGRESQL_DATABASE: codebeamer
    POSTGRESQL_HOST_AUTH_METHOD: trust
    # DOCKER_DRIVER: "overlay"
    # DOCKER_TLS_CERTDIR: "/certs"
    # # codebeamer service vars
 
    WAIT_HOSTS: "app:8080"
  services:
    # - docker-cache.repository.intranet.roche.com/docker:dind
    # - name: docker-cache.repository.intranet.roche.com/markhobson/maven-chrome:jdk-8
    - name: intland/postgres:debian-12.6.3
      alias: db

    - name: registry.code.xxx.com/xxx/cor/ptcm:dev
      alias: app
  script:
    - mvn verify [args] <filepath>

Error during this job execution:

2023-11-14T17:36:34.537005133Z /usr/bin/fc-cache-64: succeeded
2023-11-14T17:36:34.537012254Z Refreshed available fonts cache
2023-11-14T17:36:34.636478041Z Docker-compose-wait starting with configuration:
2023-11-14T17:36:34.636518290Z ------------------------------------------------
2023-11-14T17:36:34.636527694Z  - Hosts to be waiting for: [db:5432]
2023-11-14T17:36:34.636535313Z  - Timeout before failure: 30 seconds 
2023-11-14T17:36:34.636542638Z  - Sleeping time before checking for hosts availability: 0 seconds
2023-11-14T17:36:34.636550254Z  - Sleeping time once all hosts are available: 0 seconds
2023-11-14T17:36:34.636557382Z ------------------------------------------------
2023-11-14T17:36:34.636564594Z Checking availability of db:5432
2023-11-14T17:36:34.745280629Z Host db:5432 not yet available
2023-11-14T17:36:35.746491413Z Host db:5432 not yet available
2023-11-14T17:36:36.747713935Z Host db:5432 not yet available
2023-11-14T17:36:37.748797686Z Host db:5432 not yet available
2023-11-14T17:36:38.749887437Z Host db:5432 not yet available

**Note: the same docker compose is working as expected [ getting " db:5432 now available" status] when 'docker-compose up --build' is done**

Can you help me to understand how your problem with your gitlab ci pipeline is a docker problem?

From my perspective, it looks like a problem with the gitlab ci pipeline. If this is the case, then you might want to post this question in a gitlab-ci related forum.