Search code examples
postgresqlgithub-actions

Could not translate host name "postgres" to address on github actions


I'm configuring my first Github actions workflow. It require postgres, so I added a service like this :

    services:
      postgres:
        image: postgres:latest
        env:
          POSTGRES_DB: postgres_db
          POSTGRES_PASSWORD: postgres_password
          POSTGRES_PORT: 5432
          POSTGRES_USER: postgres_user
        ports:
          - 5432:5432
        # set health checks to wait until postgres has started
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

But Github actions are unable to use the postgres host. There is the steps :

    steps:
    - uses: actions/checkout@v3

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v3
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install PostgreSQL client   
      run: |
        sudo apt-get update
        sudo apt-get install --yes postgresql-client

    - name: Test database connection
      run: psql -h postgres -d postgres_db -U postgres_user -c 'SELECT 1;'
      env:
        PGPASSWORD: postgres_password

And the failure :

Run psql -h postgres -d postgres_db -U postgres_user -c 'SELECT 1;'
psql: error: could not translate host name "postgres" to address: Temporary failure in name resolution

Github action workflow page is available here : https://github.com/buxx/rolling/actions/runs/3092460076/jobs/5003751698. And entire config file here : https://github.com/buxx/rolling/blob/3e4d200e5e111d3731d7fc8d18e5795a0b82ca9a/.github/workflows/pr-tests.yml

How to configure Github action workflow to be able to use postgresql service ?


Solution

  • Without special indication about executing step into container, step is running on the runner. So, postgres host to use is localhost.