Skip to content

Switch :latest to glibc to address DNS lookup problems #48

Closed as not planned

Description

@ustaerk

Hi there,

#18 still is an issue as DNS lookup still seems to be broken in the uclib version of upstream (see below). As the Prometheus images are based on prom/busybox:latest they are based on the broken uclib version of upstream as well, causing issues with service discovery in docker compose setups. Is there any chance you could switch to the glibc version for :latest instead of uclib?

docker-compose.yml:

version: "3.8"
services:
  one:
    image: quay.io/prometheus/busybox:latest
    networks:
      - test-net
    entrypoint: sh
    command:
      - -c
      - while sleep 2; do nslookup two; echo XXXXXXXXXXXXX; done
  two:
    image: quay.io/prometheus/busybox:glibc
    networks:
      - test-net
    entrypoint: sh
    command:
      - -c
      - while sleep 2; do nslookup one; echo XXXXXXXXXXXXX; done
networks:
  test-net:

Sample output:

test-one-1  | Server:		127.0.0.11
test-one-1  | Address:	127.0.0.11:53
test-one-1  | 
test-one-1  | Non-authoritative answer:
test-one-1  | 
test-one-1  | *** Can't find two: No answer
test-one-1  | 
test-one-1  | XXXXXXXXXXXXX
test-two-1  | Server:		127.0.0.11
test-two-1  | Address:	127.0.0.11:53
test-two-1  | 
test-two-1  | Non-authoritative answer:
test-two-1  | Name:	one
test-two-1  | Address: 172.24.0.2
test-two-1  | 
test-two-1  | Non-authoritative answer:
test-two-1  | 
test-two-1  | XXXXXXXXXXXXX

Activity

  1. axd1x8a commented on Oct 1, 2024

    @axd1x8a

    Any updates?

  2. dyllandry commented on Nov 6, 2025

    @dyllandry

    I was following the prometheus getting started tutorial with docker compose so I could document how prometheus and its targets were setup as separate services instead of having to manually run many individual processes. Unfortunately that led me to discover this issue where DNS wasn't working between the services. :(

  3. discordianfish commented on Nov 12, 2025

    @discordianfish
    Member

    I wish uclib/busybox would just fix this.. But I'd be ok with switching this. @SuperQ wdyt?

  4. SuperQ commented on Nov 12, 2025

    @SuperQ
    Member

    I'm not sure exactly why we really care about this. All Prometheus components use Go for DNS lookups, they don't actually use uclibc/glibc. The only thing here is the Busybox, which is only really there for /bin/sh and basic tools.

  5. discordianfish commented on Nov 12, 2025

    @discordianfish
    Member

    I mean tbh I don't care that much either way. But I feel slightly we should either have a complete distroless image or something where the basic tools are working and not causing people to use them for things that then break and cause them to open issues here :)

  6. SuperQ commented on Oct 14, 2026

    @SuperQ
    Member

    We now have distroless images available. So I think this is obsolete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions