gliderlabs/docker-alpine

Nslookup doesn't work in github actions

taoberquer opened this issue · 2 comments

Hi, I'm trying to access a database from a container with nslookup and I'm getting an error. I've made an example of my github actions to reproduce the error. If I've forgotten anything, please let me know.

The error :

Run nslookup postgres
  
Server:		127.0.0.11
Address:	127.0.0.11:53

** server can't find postgres.psu1waqqpzqu3mj[4](https://github.com/sedeotech/inferni/actions/runs/6588514445/job/17900939871#step:3:4)5gsqnyggvb.xx.internal.cloudapp.net: NXDOMAIN

** server can't find postgres.psu1waqqpzqu3mj[4](https://github.com/sedeotech/inferni/actions/runs/6588514445/job/17900939871#step:3:5)[5](https://github.com/sedeotech/inferni/actions/runs/6588514445/job/17900939871#step:3:6)gsqnyggvb.xx.internal.cloudapp.net: NXDOMAIN

The example :

name: Test

on:
  push:
    branches: ["*"]


jobs:
  test:
    services:
      postgres:
        image: postgis/postgis:15-3.4-alpine
        env:
          POSTGRES_PASSWORD: changeme
          POSTGRES_DB: database
        ports:
          - 5432:5432
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    runs-on: ubuntu-latest
    container: alpine:latest
    steps:
        - run: nslookup postgres

We also meet similar issues, we can’t use a hostname to connect to MongoDB. It reports a ‘server selection timeout’, but our code is okay if we change the hostname to an IP address. We found that the ‘libc6-compat-1.2.3-r5.apk’ is okay, but the ‘libc6-compat-1.2.4-r2.apk’ failed. so we rollback to alpine:3.17.2 to use ‘libc6-compat-1.2.3-r5.apk’

Hi, I'm trying to access a database from a container with nslookup and I'm getting an error. I've made an example of my github actions to reproduce the error. If I've forgotten anything, please let me know.

The error :

Run nslookup postgres
  
Server:		127.0.0.11
Address:	127.0.0.11:53

** server can't find postgres.psu1waqqpzqu3mj[4](https://github.com/sedeotech/inferni/actions/runs/6588514445/job/17900939871#step:3:4)5gsqnyggvb.xx.internal.cloudapp.net: NXDOMAIN

** server can't find postgres.psu1waqqpzqu3mj[4](https://github.com/sedeotech/inferni/actions/runs/6588514445/job/17900939871#step:3:5)[5](https://github.com/sedeotech/inferni/actions/runs/6588514445/job/17900939871#step:3:6)gsqnyggvb.xx.internal.cloudapp.net: NXDOMAIN

The example :

name: Test

on:
  push:
    branches: ["*"]


jobs:
  test:
    services:
      postgres:
        image: postgis/postgis:15-3.4-alpine
        env:
          POSTGRES_PASSWORD: changeme
          POSTGRES_DB: database
        ports:
          - 5432:5432
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    runs-on: ubuntu-latest
    container: alpine:latest
    steps:
        - run: nslookup postgres

the verison of binary nslookup considered the parameter hostname postgres to not be in FQDN format, Therefore, it selected the domain name from the default search domain (the "search" directive in /etc/resolv.conf), completed the hostname to FQDN format, then performed the DNS query, finally raised the DNS querry error.

you could use the hostname with the dot suffixed ("postgres."), and nslookup does NOT complet the FQDN by using default search domain.